COleControl::GetActivationPolicy

virtual DWORD GetActivationPolicy ( );

Valeur de retour

Une combinaison d'indicateurs de l'énumération POINTERINACTIVE . Les indicateurs possibles sont:

POINTERINACTIVE_ACTIVATEONENTRY

L'objet doit être activé lorsque la souris entre elle pendant une opération de déplacement de souris en place.

POINTERINACTIVE_DEACTIVATEONLEAVE

L'objet doit être désactivé lorsque la souris quitte l'objet au cours d'une opération de déplacement de souris.

POINTERINACTIVE_ACTIVATEONDRAG

L'objet doit être activé lorsque la souris est déplacée au-dessus d'elle au cours d'une opération de glisser en place et chute d'opération.

Remarques

Substituer cette fonction de modifier le comportement de l'activation par défaut d'un contrôle qui prend en charge l'interface IPointerInactive.

Lorsque l'interface IPointerInactive est activée, le conteneur va déléguer messages WM_SETCURSOR et WM_MOUSEMOVE . COleControlde mise en œuvre de cette interface enverra ces messages via votre contrôle, après que le réglage de la souris coordonne correctement.

Chaque fois que le conteneur reçoit un message WM_SETCURSOR ou WM_MOUSEMOVE avec le pointeur de la souris sur un objet inactif soutenant IPointerInactive, il doit appeler GetActivationPolicy sur l'interface et le retour des drapeaux de l'énumération POINTERINACTIVE.

Vous pouvez traiter ces messages tout comme les messages de fenêtre ordinaire, en ajoutant les entrées correspondantes à la carte de message. Dans vos gestionnaires, évitez d'utiliser la variable de membre m_hWnd (ou les fonctions membres qui l'utilise) sans d'abord vérifier que sa valeur est non-NULL.

Tout objet destiné à plus de définir le curseur de la souris et déclenche un événement de déplacement de souris, tels que donner une rétroaction visuelle particulière, doit retourner le drapeau POINTERINACTIVE_ACTIVATEONENTRY et de tirer la rétroaction que lorsqu'il est actif. Si l'objet renvoie cet indicateur, le conteneur doit l'activer en place immédiatement et ensuite transmettre le même message qui a déclenché l'appel à GetActivationPolicy.

Si les drapeaux de la POINTERINACTIVE_ACTIVATEONENTRY et la POINTERINACTIVE_DEACTIVATEONLEAVE sont retournées, puis l'objet sera uniquement activé lorsque la souris se trouve sur l'objet. Si seulement le drapeau POINTERINACTIVE_ACTIVATEONENTRY est retourné, puis l'objet sera uniquement activé une fois lorsque la souris passe d'abord l'objet.

Vous pouvez également un contrôle inactif pour être la cible d'une opération glisser OLE et abandonner l'opération. Il faut activer le contrôle à l'heure actuelle, que l'utilisateur fait glisser un objet sur lui, afin que la fenêtre du contrôle peut être enregistrée comme une cible. À cause d'activation se produit pendant une opération glisser, retourner le drapeau POINTERINACTIVE_ACTIVATEONDRAG:

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

L'information communiquée par GetActivationPolicy ne doit pas être mises en cache par un conteneur. Au lieu de cela, cette méthode doit être appelée chaque fois que la souris pénètre dans un objet inactif.

Si un objet inactif ne demande pas à être activé lorsque la souris entre elle en place, son conteneur devrait envoyer les messages WM_SETCURSOR à cet objet en appelant OnInactiveSetCursor , tant que le pointeur de la souris reste sur l'objet.

Ce qui permet généralement de l'interface IPointerInactive signifie que vous souhaitez que le contrôle doit être capable de traiter les messages de la souris en tout temps. Pour obtenir ce comportement dans un conteneur qui ne supporte pas l'interface IPointerInactive , vous devez avoir votre contrôle toujours activé quand il est visible, qui signifie que le contrôle doit avoir l'indicateur OLEMISC_ACTIVATEWHENVISIBLE parmi ses indicateurs divers . Cependant, pour empêcher cet indicateur prenant effet dans un conteneur qui prend en charge IPointerInactive, vous pouvez également spécifier l'indicateur OLEMISC_IGNOREACTIVATEWHENVISIBLE:

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

COleControl aperçu |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index