COleControl::GetActivationPolicy

Виртуальный DWORD GetActivationPolicy ( );

Возвращаемое значение

Комбинация флагов из перечисления POINTERINACTIVE . Возможные флаги:

POINTERINACTIVE_ACTIVATEONENTRY

Объект должен быть на месте, когда указатель мыши попадает во время операции перемещения мыши.

POINTERINACTIVE_DEACTIVATEONLEAVE

Объект должен быть отключен, когда указатель мыши покидает объект во время операции перемещения мыши.

POINTERINACTIVE_ACTIVATEONDRAG

Объект должен быть активирован при перетаскивании мышью над ним во время перетаскивания на месте и операция перетаскивания.

Примечания

Переопределить эту функцию для изменения поведения по умолчанию активации элемента управления, который поддерживает интерфейс IPointerInactive.

Когда включен интерфейс IPointerInactive , контейнер будет делегировать сообщения WM_SETCURSOR и WM_MOUSEMOVE на него. COleControlреализация этого интерфейса направляет эти сообщения с помощью элемента управления схема сообщений, после корректировки мыши координирует надлежащим образом.

Всякий раз, когда контейнер получает сообщение WM_SETCURSOR или WM_MOUSEMOVE с указателем мыши над неактивным объект, поддерживающий IPointerInactive, он должен вызвать GetActivationPolicy на интерфейс и возвращение флагов из перечисления POINTERINACTIVE.

Вы можете обработать эти сообщения так же, как обычные окна сообщений, добавляя соответствующие записи в схеме сообщений. В вашем обработчики, избегайте использования переменной-члена m_hWnd (или любых функций-членов, которые использует его) без предварительного его значение может быть не-NULL.

Любой объект, предназначенные для более чем установите курсор мыши и/или огонь события перемещения мыши, такие как дают специальные визуальную обратную связь, должен возвратить POINTERINACTIVE_ACTIVATEONENTRY флаг и привлечь обратной связи только при активной. Если объект возвращает этот флаг, контейнер должен активировать его на месте сразу же и затем направить его то же сообщение, которое вызвало вызов GetActivationPolicy.

Если возвращаются флаги POINTERINACTIVE_ACTIVATEONENTRY и POINTERINACTIVE_DEACTIVATEONLEAVE , то объект будет активироваться только когда указатель мыши находится над объектом. Если только флаг POINTERINACTIVE_ACTIVATEONENTRY возвращается, то объект будет активироваться только как только когда указатель мыши впервые входит объект.

Вы также можете неактивного элемента управления быть объектом перетаскивания OLE и операция перетаскивания. Это требует активации элемента управления на данный момент пользователь перетаскивает объект над ним, так что окна элемента управления могут быть зарегистрированы как назначения перетаскивания. Чтобы активации во время перетаскивания, возвращает флаг POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyCtrl::GetActivationPolicy()
{
 nbsp;  возвращение POI&NTERINACTIVE_ACTIVATEONDRAG;
}

Информация, представленная GetActivationPolicy не должен кэшироваться контейнером. Вместо этого этот метод должен вызываться каждый раз, когда указатель мыши входит неактивного объекта.

Если объект неактивного не запрашивает быть на месте, когда указатель мыши входит в его, его контейнера следует направить WM_SETCURSOR сообщение в этот объект путем вызова OnInactiveSetCursor , пока указатель мыши находится над объектом.

Возможность IPointerInactive интерфейс обычно означает, что требуется элемент управления быть может обрабатывать сообщения мыши все время. Для того чтобы получить это поведение в контейнере, который не поддерживает интерфейс IPointerInactive , вам будет нужно иметь ваши управления всегда когда видно, что означает элемент управления должен иметь флаг OLEMISC_ACTIVATEWHENVISIBLE среди прочих флагов. Однако чтобы предотвратить этот флаг эффект в контейнере, который поддерживает IPointerInactive, можно также указать флаг OLEMISC_IGNOREACTIVATEWHENVISIBLE:

 static const DWORD BASED_CODE _dwMyOleMisc =
 nbsp;  OLEMISC_ACTIVATEWHE&NVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Обзор COleControl |nbsp; Члены класса | Иерархическая схема

См. также COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index