COleControl::GetActivationPolicy

virtual GetActivationPolicy DWORD ( );

Valor de retorno

Uma combinação de sinalizadores de enumeração POINTERINACTIVE . Os sinalizadores possíveis são:

POINTERINACTIVE_ACTIVATEONENTRY

O objeto deve ser ativado quando o mouse entra-lo durante uma operação de mover mouse no local.

POINTERINACTIVE_DEACTIVATEONLEAVE

O objeto deve ser desativado quando o mouse sai do objeto durante uma operação de mover mouse.

POINTERINACTIVE_ACTIVATEONDRAG

O objeto deve ser in loco ativado quando o mouse é arrastado sobre ele durante um arrastar e soltar a operação.

Observações

Substituir esta função para alterar o comportamento de ativação padrão de um Controlarar que ofereça suporte a interface de IPointerInactive.

Quando a interface de IPointerInactive está habilitada, o contêiner delegará WM_SETCURSOR e WM_MOUSEMOVE mensagens para ele. COleControlda implementação dessa interface irá enviar essas mensagens por meio de mapa da mensagem do Controlarar, depois de ajustar o mouse coordenadas adequadamente.

Sempre que o contêiner recebe um WM_SETCURSOR ou WM_MOUSEMOVE mensagem com o ponteiro do mouse sobre um objeto inativo suporte IPointerInactive, ela deve chamar GetActivationPolicy na interface e retorno sinalizadores de enumeração POINTERINACTIVE.

Você pode Processoar essas mensagens como mensagens de janela normal, adicionando as entradas correspondentes ao mapa da mensagem. Nos seus manipuladores, evite usar a variável de membro m_hWnd (ou quaisquer funções de membro que o utiliza) sem primeiro verificando que o valor é não-NULL.

Qualquer objeto destinado a mais de definir o cursor do mouse e/ou acionar um evento do mouse de movimentação, tais como dar feedback visual especial, deve retornar o Sinalizar POINTERINACTIVE_ACTIVATEONENTRY e desenhar o feedback somente quando ativo. Se o objeto retorna esse Sinalizar, o contêiner deve ativá-lo in-loco imediatamente e, em seguida, encaminhá-lo a mesma mensagem que desencadeou a chamada GetActivationPolicy.

Se o POINTERINACTIVE_ACTIVATEONENTRY e POINTERINACTIVE_DEACTIVATEONLEAVE sinalizadores são retornados, o objeto somente será ativado quando o mouse está sobre o objeto. Se apenas o Sinalizar POINTERINACTIVE_ACTIVATEONENTRY for retornado, em seguida, o objeto somente será ativado uma vez quando o mouse entra pela primeira vez o objeto.

Também convém um Controlarar inativo para ser o destino de um OLE arrastar e soltar a operação. É necessário ativar o Controlarar no momento em que o usuário arrasta um objeto sobre ele, para que a janela do Controlarar pode ser registrada como um destino de soltar. Para causar ativação ocorra durante um arrastar, retorne o Sinalizar POINTERINACTIVE_ACTIVATEONDRAG:

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

As informações comunicadas por GetActivationPolicy não deverão ficar em cache por um contêiner. Em vez disso, esse método deve ser chamado sempre que o mouse entra um objeto inativo.

Se um objeto inativo não solicitar estar ativado quando o mouse entra-lo no local, seu contêiner deve distribuir mensagens subseqüentes WM_SETCURSOR para este objeto chamando OnInactiveSetCursor , enquanto o ponteiro do mouse permanece sobre o objeto.

Permitindo que a interface de IPointerInactive normalmente significa que você deseja que o controle para ser capaz de processar mensagens do mouse em todos os momentos. Para obter esse comportamento em um contêiner que não suporta a interface de IPointerInactive , você precisará ter seu controle sempre ativado quando visível, que significa que o controle deve ter o sinalizador OLEMISC_ACTIVATEWHENVISIBLE entre seus diversos sinalizadores. No entanto, para evitar que esse Sinalizar tendo efeito em um contêiner que oferece suporte a IPointerInactive, você também pode especificar o sinalizador OLEMISC_IGNOREACTIVATEWHENVISIBLE:

 estático const DWORD BASED_CODE _dwMyOleMisc =
 nbsp;  OLEMISC_ACTIVATEWHE&NVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRSTOLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDEE |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

Visão geral de COleControl |nbsp; Membros de classe | Gráfico de hierarquia

Co&nsulte tambémnbsp;COleControl::OnInactiveSetCursor, COleControl::OnInactiveMouseMove

Index