віртуальний 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:
статичний константа DWORD BASED_CODE _dwMyOleMisc =
nbsp; OLEMISC_ACTIVATEWHE&NVISIBLE |
OLEMISC_IGNOREACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
Огляд COleControl |nbsp; Члени класу | Ієрархічна діаграма
Дивіться також COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove