Partilhar via


Controles ActiveX 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 dispara um evento para alertar o contêiner.

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

MFC suporta dois tipos de eventos: predefinidos e personalizados. Eventos de estoque são aqueles eventos que a classe COleControl manipula automaticamente. Para obter uma lista completa de eventos de estoque, consulte o artigo Controles ActiveX MFC: Adicionando eventos de estoque. Eventos personalizados permitem a um controle a capacidade de notificar o contêiner quando ocorre uma ação específica para esse controle. Alguns exemplos seriam uma mudança no estado interno de um controle ou recebimento de uma determinada mensagem de janela.

Para que seu controle dispare eventos corretamente, sua classe de controle deve mapear cada evento do controle para uma função de membro que deve 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. Este mapa de eventos é declarado pela seguinte macro, localizada no arquivo de cabeçalho (.H) da declaração da classe de controlo.

DECLARE_EVENT_MAP()

Depois de o mapa de eventos ser declarado, deve ser definido no ficheiro de implementação do controlo (.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 MFC para criar o projeto, ele adiciona automaticamente essas linhas. Se você não usar o Assistente de controle ActiveX MFC, você deve adicionar essas linhas manualmente.

Com o Modo de Exibição de Classe, você pode adicionar eventos de estoque suportados por eventos de classe COleControl ou personalizados que você definir. Para cada novo evento, a Vista de Classe adiciona automaticamente a entrada apropriada ao mapa de eventos do controlo e ao arquivo .IDL do controlo.

Dois outros artigos discutem os eventos em detalhes:

Ver também

Controles ActiveX MFC
Controles ActiveX MFC: Métodos
Classe COleControl