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
COleControl::OnInactiveSetCursor
COleControl::OnInactiveMouseMove