COleControl::GetActivationPolicy

wirtualne DWORD GetActivationPolicy ( );

Wartość zwracany

Kombinacja flag z wyliczenia POINTERINACTIVE . Możliwe flagi:

POINTERINACTIVE_ACTIVATEONENTRY

Obiekt należy w miejscu uaktywniana, gdy mysz wstawi go podczas operacji przenoszenia myszy.

POINTERINACTIVE_DEACTIVATEONLEAVE

Dezaktywowane obiektu, gdy kursor opuści obiektu podczas operacji przenoszenia myszy.

POINTERINACTIVE_ACTIVATEONDRAG

Obiekt należy w miejscu uaktywniana, gdy wskaźnik myszy zostanie przeciągnięty nad nim podczas przeciągania i upuszczania operacji.

Uwagi

Zastąpić tę funkcję, aby zmienić domyślne zachowanie aktywacji formant, który obsługuje interfejs IPointerInactive.

Po włączeniu funkcji interfejsu IPointerInactive pojemnik zostanie przekazać wiadomości WM_SETCURSOR i WM_MOUSEMOVE do niego. COleControlwykonania tego interfejsu wyśle te wiadomości za pośrednictwem sieci kontroli wiadomości mapę, po dostosowanie myszy odpowiednio koordynuje.

Przy każdym pojemniku odbiera wiadomość WM_SETCURSOR lub WM_MOUSEMOVE z wskaźnik myszy nad obiektem nieaktywny, wspieranie IPointerInactive, powinna wywołać GetActivationPolicy interfejsu i zwrotu flagi z wyliczenia POINTERINACTIVE.

Można przetworzyć te wiadomości tak samo jak zwykłe okna wiadomości, dodając odpowiednie wpisy do mapy wiadomości. W sieci obsługi, unikaj używania m_hWnd Państwa zmienną (lub wszystkie funkcje Państwa, które używa jej) bez uprzedniego sprawdzenia, że jej wartość jest spoza-NULL.

Dowolny obiekt przeznaczony do więcej niż ustaw kursor myszy i/lub ogień zdarzenie przesuwanie myszy, takie jak podać specjalne wizualne, powinny zwrócić Flaga POINTERINACTIVE_ACTIVATEONENTRY i narysuj opinii tylko wtedy, gdy jest to aktywna. Jeśli obiekt zwraca tę flagę, pojemnik należy uaktywnić go w miejsce niezwłocznie i następnie przesłać go dalej na tej samej wiadomości, która wyzwoliła wywołanie GetActivationPolicy.

Jeśli flagi POINTERINACTIVE_ACTIVATEONENTRY i POINTERINACTIVE_DEACTIVATEONLEAVE są zwracane, następnie obiekt zostanie tylko uaktywniony, gdy kursor znajduje się nad obiektem. Jeśli tylko flagi POINTERINACTIVE_ACTIVATEONENTRY , następnie obiekt będzie tylko uaktywniany po kiedy wskaźnik myszy po wprowadzeniu obiektu.

Można również formantu nieaktywny docelowych OLE przeciągnij i upuść operacji. Wymaga to, uaktywnianie kontroli w chwili użytkownik przeciągnie obiekt nad nim, tak aby oknie formantu można zarejestrować jako miejsce docelowe upuszczenia. Aby spowodować aktywacji wystąpi podczas przeciągania, powrót Flaga POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyCtrl::GetActivationPolicy()
{
 nbsp;  Zwraca POI&NTERINACTIVE_ACTIVATEONDRAG;
}

Informacje przekazane przez GetActivationPolicy nie powinny być buforowane przez kontener. Zamiast tego ta metoda powinna zostać wywołana każdorazowo myszy wejścia obiektu nieaktywny.

Jeśli obiekt nieaktywny nie zażąda w miejsce uaktywniana, gdy mysz wstawi go, jego kontenera powinny wysyłką kolejnych komunikatów WM_SETCURSOR do tego obiektu przez wywołanie OnInactiveSetCursor tak długo, jak wskaźnik myszy pozostaje nad obiektem.

Włączenie interfejsu IPointerInactive zwykle oznacza odpowiedni formant umożliwiający przetwarzanie komunikatów myszy przez cały czas. Aby uzyskać to zachowanie w pojemniku, który nie obsługuje interfejsu IPointerInactive , trzeba będzie kontrolujesz zawsze uaktywnione podczas widoczne, co oznacza formantu powinna mieć flagę OLEMISC_ACTIVATEWHENVISIBLE wśród jego różne flagi. Jednakże aby zapobiec nabrania w pojemniku, który obsługuje IPointerInactivetej flagi, można również określić flagi OLEMISC_IGNOREACTIVATEWHENVISIBLE:

 statyczne stała _dwMyOleMisc DWORD BASED_CODE =
 nbsp;  OLEMISC_ACTIVATEWHE&NVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Omówienie COleControl |nbsp; Klasa członków | Wykres hierarchii

Zobacz też COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index