Compartilhar via


Controles ActiveX do MFC: Eventos

Os controles ActiveX usam eventos para notificar um contêiner de que algo aconteceu com o controle. Exemplos comuns de eventos incluem cliques no controle, dados inseridos usando o teclado e alterações no estado do controle. Quando essas ações ocorrem, o controle aciona um evento para alertar o contêiner.

Os eventos também são chamados de mensagens.

O MFC dá suporte a dois tipos de eventos: estoque e personalizado. Eventos de estoque são os eventos que a classe COleControl manipula automaticamente. Para obter uma lista completa de eventos de ações, consulte o artigo Controles ActiveX do MFC: Adicionando eventos de estoque. Eventos personalizados permitem controlar a capacidade de notificar o contêiner quando ocorre uma ação específica a esse controle. Alguns exemplos seriam uma alteração no estado interno de um controle ou recebimento de uma determinada mensagem de janela.

Para que o controle dispare eventos corretamente, sua classe de controle deve mapear cada evento do controle para uma função membro que deve ser chamada quando o evento relacionado ocorrer. Esse mecanismo de mapeamento (chamado de mapa de eventos) centraliza informações sobre o evento e permite que o Visual Studio acesse e manipule facilmente os eventos do controle. Esse mapa de eventos é declarado pela macro a seguir, localizada no cabeçalho (. H) arquivo da declaração de classe de controle:

DECLARE_EVENT_MAP()

Depois que o mapa de eventos tiver sido declarado, ele deverá ser definido na implementação do controle (. Arquivo CPP). As seguintes linhas de código definem o mapa de eventos, permitindo que seu controle dispare eventos específicos:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

Se você usar o Assistente de Controle ActiveX do MFC para criar o projeto, ele adicionará automaticamente essas linhas. Se você não usar o Assistente de Controle ActiveX do MFC, deverá adicionar essas linhas manualmente.

Com o Modo de Exibição de Classe, você pode adicionar eventos de estoque compatíveis com eventos personalizados ou de classe COleControl que você definir. Para cada novo evento, o Modo de Exibição de Classe adiciona automaticamente a entrada adequada ao mapa de eventos do controle e ao controle. Arquivo IDL.

Dois outros artigos discutem eventos em detalhes:

Consulte também

Controles MFC ActiveX
Controles ActiveX do MFC: métodos
Classe COleControl