COleControl::GetActivationPolicy

virtuelle DWORD GetActivationPolicy ( );

Rückgabewert

Eine Kombination von Flags aus der POINTERINACTIVE -Enumeration. Mögliche Flags sind:

POINTERINACTIVE_ACTIVATEONENTRY

Sollte das Objekt in-Place aktiviert, wenn die Maus bewegt es während einer Operation Maus verschieben wird.

POINTERINACTIVE_DEACTIVATEONLEAVE

Das Objekt sollte deaktiviert werden, wenn der Mauszeiger während eines Verschiebevorgangs Maus das Objekt verlässt.

POINTERINACTIVE_ACTIVATEONDRAG

Das Objekt sollte in-Place aktiviert, wenn die Maus während einer Drag & drüber gezogen wird und ablegen.

Bemerkungen

Überschreiben Sie diese Funktion, um das Standardverhalten für die Aktivierung eines Steuerelements ändern, das die IPointerInactive -Schnittstelle unterstützt.

Wenn die IPointerInactive -Schnittstelle aktiviert ist, wird der Container WM_SETCURSOR und WM_MOUSEMOVE Nachrichten zu delegieren. COleControlImplementierung dieser Schnittstelle versenden diese Meldungen über die Meldungszuordnung des Steuerelements, nach dem Anpassen der Maus entsprechend koordiniert.

Wenn der Container eine WM_SETCURSOR oder WM_MOUSEMOVE -Nachricht mit dem Mauszeiger über ein inaktiver Objekt IPointerInactiveunterstützen empfängt, sollte es GetActivationPolicynennen auf die Schnittstelle und Rückkehr Flags aus der POINTERINACTIVE -Enumeration.

Sie können diese Nachrichten ebenso wie gewöhnliches Fenster-Nachrichten verarbeiten, indem der Meldungszuordnung die entsprechenden Einträge hinzufügen. In Ihrem Handler, vermeiden Sie die Member-Variable M_hWnd (oder alle Member-Funktionen, die es verwendet), ohne vorher überprüft, ob der Wert nicht ist-NULL.

Jedes Objekt soll mehr als den Mauscursor festlegen und/oder Feuer ein Mausereignis verschieben, z. B. spezielles visuelles Feedback zu geben, sollte zurück, das POINTERINACTIVE_ACTIVATEONENTRY -Flag und zeichnen das Feedback nur, wenn Sie aktiv. Wenn das Objekt dieses Flag zurückgibt, sollte der Container es direkte sofort aktivieren und anschließend weiterleiten, die gleiche Meldung, die den Aufruf von GetActivationPolicy ausgelöst.

Wenn Flags den POINTERINACTIVE_ACTIVATEONENTRY und POINTERINACTIVE_DEACTIVATEONLEAVE zurückgegeben werden, wird das Objekt nur aktiviert werden, wenn der Mauszeiger über dem Objekt befindet. Wenn nur das POINTERINACTIVE_ACTIVATEONENTRY -Flag zurückgegeben wird, wird dann das Objekt nur aktiviert werden, sobald die Maus zunächst das Objekt tritt.

Sie können auch ein inaktives Steuerelement um das Ziel einer OLE-Drag & drop Vorgang. Dies erfordert im Moment, den der Benutzer ein Objekt über sie, zieht, das Steuerelement aktivieren, so dass das Fenster des Steuerelements als Ablageziel registriert werden kann. Zurück, um Aktivierung auftreten, während ein ziehen verursachen, das POINTERINACTIVE_ACTIVATEONDRAG -flag:

DWORD CMyCtrl::GetActivationPolicy()
{
 &Nbsp;  Rückkehr POINTERINACTIVE_ACTIVATEONDRAG;
}

Von GetActivationPolicy mitgeteilten Informationen sollten nicht von einem Container zwischengespeichert werden. Stattdessen sollte diese Methode aufgerufen werden jedes Mal, wenn der Mauszeiger in eine inaktive Objekt eintritt.

Wunsch ein inaktiver Objekt nicht direkt aktiviert, wenn die Maus bewegt es wird sein, sollte dessen Container Versand nachfolgende WM_SETCURSOR Meldungen zu diesem Objekt durch Aufrufen von OnInactiveSetCursor , solange der Mauszeiger über dem Objekt bleibt.

Aktivieren der IPointerInactive -Schnittstelle in der Regel bedeutet, dass das Steuerelement Mausmeldungen zu verarbeiten, zu allen Zeiten werden soll. Um dieses Verhalten in einem Container zu erhalten, der die IPointerInactive -Schnittstelle nicht unterstützt, müssen Sie das Steuerelement immer aktiviert, wenn sichtbar, d. h. das Steuerelement gewährleisten Flagge unter seine verschiedene Flags haben sollte. Um zu verhindern, dass dieses Flag wirksam in einem Container, der IPointerInactiveunterstützen, können Sie jedoch auch das OLEMISC_IGNOREACTIVATEWHENVISIBLE -Flag angeben:

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

Übersicht über die COleControl |nbsp; Member der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index