Compartilhar via


Controles ActiveX MFC: eventos

Os controles ActiveX usam eventos para notificar um contêiner sobre as ocorrências executadas no controle. Os exemplos comuns de eventos incluem cliques no controle, dados inseridos usando o teclado e as alterações no estado do controle. Quando essas ações ocorrem, o controle dispara 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: ação e personalizado. Eventos de ações 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: adicionar eventos de ações. Os eventos personalizados permitem que um controle notifique o contêiner quando ocorrer uma ação específica para 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 os eventos corretamente, a classe de controle deverá mapear cada evento do controle para uma função membro que deverá ser chamada quando o evento relacionado ocorrer. Esse mecanismo de mapeamento (chamado de mapa de eventos) centraliza as 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 seguinte macro, localizada no arquivo de cabeçalho (.H) da declaração da classe de controle:

DECLARE_EVENT_MAP()

Após o mapa de eventos ser declarado, deverá ser definido no arquivo de implementação (.CPP) do controle. As seguintes linhas de código definem o mapa de eventos, permitindo que o 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á essas linhas automaticamente. Se não usar o Assistente de Controle ActiveX do MFC, será necessário adicionar essas linhas manualmente.

Com o Modo de Exibição de Classe, é possível adicionar os eventos de ações com suporte pela classe COleControl ou os eventos personalizados que você definir. Para cada novo evento, o Modo de Exibição de Classe adiciona automaticamente a entrada apropriada ao mapa de eventos do controle e ao arquivo .IDL do controle.

Dois outros artigos abordam os eventos em detalhes:

Confira também

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