Udostępnij za pośrednictwem


COleControl::GetActivationPolicy

Zmienia domyślne zachowanie formantu, który obsługuje aktywację IPointerInactive interfejsu.

virtual DWORD GetActivationPolicy( );

Wartość zwracana

Kombinacja flag z POINTERINACTIVE wyliczenia.Możliwe flagi są:

  • POINTERINACTIVE_ACTIVATEONENTRY
    Obiekt powinny być uaktywniony, gdy mysz przejdzie on podczas operacji przenoszenia myszy w miejscu.

  • POINTERINACTIVE_DEACTIVATEONLEAVE
    Obiekt należy dezaktywowane, gdy mysz opuści obiektu podczas operacji przenoszenia myszy.

  • POINTERINACTIVE_ACTIVATEONDRAG
    Obiekt powinien być aktywowane przeciągnięte myszy nad nim podczas przeciągania w miejscu i upuść operacji.

Uwagi

Gdy IPointerInactive interfejs jest włączony, pojemnik będzie delegować WM_SETCURSOR i WM_MOUSEMOVE wiadomości do niej.COleControlw implementacji interfejsu wyśle te wiadomości za pośrednictwem programu kontroli mapy wiadomości, po myszy dostosowując odpowiednio koordynuje.

Każdym pojemniku odbiera WM_SETCURSOR lub WM_MOUSEMOVE wiadomości wskaźnik myszy na wspieranie nieaktywny obiektu IPointerInactive, powinna wywołać GetActivationPolicy interfejsu i zwrotu flagi z POINTERINACTIVE wyliczenia.

Może przetwarzać te wiadomości, podobnie jak zwykłe okno wiadomości, dodając odpowiednie wpisy mapy wiadomości.W sieci obsługi unikać m_hWnd zmienna członka (lub żadnych funkcji elementów członkowskich, które używa go) bez uprzedniego sprawdzanie, czy jej wartość nie-NULL.

Każdy obiekt przeznaczony do więcej niż Ustaw kursor myszy lub zdarzenie myszy Przenieś ognia, takie jak podać specjalne wizualne powinna zwrócić POINTERINACTIVE_ACTIVATEONENTRY flagę i narysuj opinii tylko wtedy, gdy jest aktywny.Jeśli obiekt zwraca tę flagę, pojemnik należy uaktywnić go w miejsce niezwłocznie i następnie przesłać go dalej ten sam komunikat, który wyzwolił wywołanie GetActivationPolicy.

Jeśli oba POINTERINACTIVE_ACTIVATEONENTRY i POINTERINACTIVE_DEACTIVATEONLEAVE flagi są zwracane, a następnie obiekt tylko zostanie uaktywniony, gdy kursor znajduje się nad obiektem.Jeśli tylko POINTERINACTIVE_ACTIVATEONENTRY zwracana jest flaga, a następnie tylko obiekt zostanie uaktywniony po gdy myszy wprowadza pierwszy obiekt.

Możesz również nieaktywny formant w docelowym OLE przeciągnij i upuść operacji.Wymaga to aktywowanie kontroli w momencie użytkownik przeciągnie obiekt nad nim, tak aby okno Kontrola mogą być rejestrowane jako miejsce docelowe upuszczenia.Spowodować aktywacji podczas przeciągania zwrotu POINTERINACTIVE_ACTIVATEONDRAG flaga:

DWORD CMyAxCtrl::GetActivationPolicy()
{
    return POINTERINACTIVE_ACTIVATEONDRAG;
}

Informacje przekazane przez GetActivationPolicy nie powinny być buforowane przez kontener.Zamiast tego należy można wywołać tej metody przy każdym myszy wprowadza nieaktywny obiektu.

Nieaktywne obiekt żądania nie uaktywniony, gdy mysz przejdzie go w miejsce, jego kontenera, powinny wysyłką kolejnych WM_SETCURSOR wiadomości do tego obiektu, wywołując OnInactiveSetCursor tak długo, jak wskaźnik myszy pozostaje nad obiektem.

Włączanie IPointerInactive interfejsu zazwyczaj oznacza, że formant ma być zdolne do przetwarzania komunikatów myszy przez cały czas.Aby uzyskać to zachowanie w pojemniku, który nie obsługuje IPointerInactive interfejsu, trzeba mieć kontrolę zawsze uaktywnione, gdy jest widoczny, oznacza formantu powinna mieć OLEMISC_ACTIVATEWHENVISIBLE Flaga między jego różne flagi.Aby zapobiec tej flagi z wpływają w pojemniku, który obsługuje jednak IPointerInactive, można również określić OLEMISC_IGNOREACTIVATEWHENVISIBLE flaga:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Wymagania

Nagłówek: afxctl.h

Zobacz też

Informacje

Klasa COleControl

Wykres hierarchii

COleControl::OnInactiveSetCursor

COleControl::OnInactiveMouseMove