Compartilhar via


COleControl::GetActivationPolicy

Altera o comportamento de ativação padrão de um controle que suporte o IPointerInactive interface.

virtual DWORD GetActivationPolicy( );

Valor de retorno

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

  • POINTERINACTIVE_ACTIVATEONENTRY
    O objeto deve ser ativado quando o mouse entra ele durante uma operação de movimentação do mouse no local.

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

  • POINTERINACTIVE_ACTIVATEONDRAG
    O objeto deve ser ativado quando o mouse é arrastado sobre ele durante uma arrastar no local e operação de soltar.

Comentários

Quando o IPointerInactive interface está ativada, o contêiner delegará WM_SETCURSOR e WM_MOUSEMOVE mensagens para ele. COleControlda implementação dessa interface enviará estas mensagens através do MAP da mensagem do controle, depois de ajustar o mouse coordena apropriadamente.

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

Você pode processar essas mensagens como mensagens de janela normal, adicionando as entradas correspondentes ao MAP da mensagem.Os manipuladores de evitar usar o m_hWnd variável de membro (ou quaisquer funções de membro que o utiliza) sem primeiro verificar se o valor é não-NULO.

Qualquer objeto se destina a mais de conjunto o cursor do mouse e/ou emita um evento de movimentação do mouse, sistema autônomo fornecer comentários visuais especiais, deve retornar o POINTERINACTIVE_ACTIVATEONENTRY sinalizar e desenhe sistema autônomo comentários somente quando ativo.Se o objeto retorna esse sinalizar, o contêiner deverá ativá-lo no local imediatamente e encaminhá-lo a mesma mensagem que disparou a telefonar para GetActivationPolicy.

Se o POINTERINACTIVE_ACTIVATEONENTRY and POINTERINACTIVE_DEACTIVATEONLEAVEsinalizadores de são retornados e, em seguida, o objeto só será ativado quando o mouse está sobre o objeto.Se apenas o POINTERINACTIVE_ACTIVATEONENTRY sinalizar é retornada e, em seguida, o objeto só será ativado uma vez quando o mouse entra primeiro o objeto.

Você também poderá um controle ActiveX inativo para ser o destino de um OLE arrastar e soltar a operação.Para isso, é necessário ativar o controle no momento que o usuário arrasta um objeto sobre ele, para que a janela do controle pode ser registrada sistema autônomo um destino de soltar.Para fazer com que a ativação ocorrer durante uma arrastar, retornar a POINTERINACTIVE_ACTIVATEONDRAG sinalizar:

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

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

Se um objeto inativo não solicita a ser ativado quando o mouse entra-lo no local, seu contêiner deverá despachar subseqüentes WM_SETCURSOR mensagens para este objeto, chamando OnInactiveSetCursor, desde que o ponteiro do mouse permanece sobre o objeto.

Ativando o IPointerInactive interface normalmente significa que você deseja que o controle seja capaz de processar mensagens do mouse em todas as ocasiões. Para obter esse comportamento em um contêiner que não ofereça suporte a IPointerInactive interface, você precisará ter o controle sempre ativado quando visível, que significa que o controle deve ter o OLEMISC_ACTIVATEWHENVISIBLE sinalizar 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 OLEMISC_IGNOREACTIVATEWHENVISIBLE sinalizar:

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

Requisitos

Cabeçalho: afxctl.h

Consulte também

Referência

Classe COleControl

Gráfico de hierarquia

COleControl::OnInactiveSetCursor

COleControl::OnInactiveMouseMove

Outros recursos

COleControl membros