COleControl::GetActivationPolicy

virtuale DWORD GetActivationPolicy ( );

Valore restituito

Combinazione dei flag POINTERINACTIVE dell'enumerazione. Flag possibili sono:

POINTERINACTIVE_ACTIVATEONENTRY

L'oggetto deve essere attivato quando il mouse entra nel durante un'operazione di spostamento del mouse sul posto.

POINTERINACTIVE_DEACTIVATEONLEAVE

L'oggetto deve essere disattivato quando il mouse lascia l'oggetto durante un'operazione di spostamento del mouse.

POINTERINACTIVE_ACTIVATEONDRAG

L'oggetto deve essere attivato quando il mouse viene trascinato su di essa durante il trascinamento sul posto e goccia operazione.

Osservazioni

Eseguire l'override di questa funzione per modificare il comportamento di attivazione predefinito di un controllo che supporta l'interfaccia IPointerInactive.

Quando è attivata l'interfaccia IPointerInactive , il contenitore delegherà i messaggi WM_SETCURSOR e WM_MOUSEMOVE ad esso. L'implementazione di questa interfaccia di COleControlsarà spedire questi messaggi tramite mappa dei messaggi del controllo, dopo la regolazione del mouse coordinate in modo appropriato.

Ogni volta che il contenitore riceve un messaggio WM_SETCURSOR o WM_MOUSEMOVE con il puntatore del mouse sopra un oggetto inattivo che supporta IPointerInactive, dovrebbe chiamare GetActivationPolicy sull'interfaccia e ritorno flag dell'enumerazione POINTERINACTIVE.

È possibile elaborare questi messaggi proprio come i messaggi di finestra ordinaria, aggiungendo le voci relative alla mappa messaggi. Nei gestori, evitare di utilizzare la variabile membro m_hWnd (o tutte le funzioni membro che lo utilizza) senza prima controllare che il suo valore è non-NULL.

Qualsiasi oggetto destinato a più di impostare il cursore del mouse e/o un evento di spostamento del mouse, il fuoco, come dare un feedback visivo speciale, dovrebbe restituire la bandiera POINTERINACTIVE_ACTIVATEONENTRY e disegnare il feedback solo quando è attivo. Se l'oggetto restituisce questo flag, il contenitore dovrebbe attivare lo posto immediatamente e inoltra il messaggio stesso che ha attivato la chiamata a GetActivationPolicy.

Se vengono restituite bandiere sia POINTERINACTIVE_ACTIVATEONENTRY che POINTERINACTIVE_DEACTIVATEONLEAVE , poi l'oggetto verrà solo attivato quando il mouse è sopra l'oggetto. Se solo la bandiera POINTERINACTIVE_ACTIVATEONENTRY viene restituita, poi l'oggetto sarà solo attivata una volta quando il mouse passa prima volta l'oggetto.

Si consiglia, inoltre, un controllo inattivo per essere la destinazione di un trascinamento OLE- and -drop operazione. Ciò richiede, attivando il controllo al momento che l'utente trascina un oggetto su di esso, in modo che la finestra del controllo può essere registrato come destinazione di rilascio. A causare l'attivazione a verificarsi durante il trascinamento, restituire la bandiera POINTERINACTIVE_ACTIVATEONDRAG:

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

Le informazioni comunicate da GetActivationPolicy non devono memorizzare nella cache da un contenitore. Al contrario, questo metodo deve essere chiamato ogni volta che il mouse entra in un oggetto inattivo.

Se un oggetto inattivo non richiede di essere attivato quando il mouse si entra sul posto, il contenitore deve spedire messaggi WM_SETCURSOR successivi a questo oggetto chiamando OnInactiveSetCursor finché il puntatore del mouse rimane sull'oggetto.

Abilitare l'interfaccia IPointerInactive in genere significa che si desidera che il controllo sia in grado di elaborare i messaggi del mouse in ogni momento. Per ottenere questo comportamento in un contenitore che non supporta l'interfaccia IPointerInactive , è necessario includere il controllo sempre attivato quando visibile, che significa il controllo dovrebbe avere il flag OLEMISC_ACTIVATEWHENVISIBLE tra le sue varie bandiere. Tuttavia, per impedire questo flag di entrata in vigore in un contenitore che supporta IPointerInactive, è possibile anche specificare il flag OLEMISC_IGNOREACTIVATEWHENVISIBLE:

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

Panoramica di COleControl |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index