Sempre que um Controlarar deseja notificar seu contêiner que alguma ação (determinada pelo desenvolvedor de Controlarar) aconteceu (como um pressionamento de tecla, clique do mouse ou uma mudança de estado do controle) chama uma função de acionamento do evento. Essa função notifica o contêiner de Controlarar que alguma ação importante ocorreu por disparar o evento relacionado.
O Microsoft Foundation Biblioteca de Classees oferece um modelo de programação otimizado para acionar eventos. Nesse modelo, "evento mapeia" são usadas para designar quais funções disparar os eventos para um Controlarar específico. Mapas de evento contém uma macro para cada evento. Por exemplo, um mapa de evento que aciona um estoque clique evento pode parecer como este:
BEGIN_EVENT_MAP (CSampleCtrl, COleControl)
//{{AFX_EVENT_MAP(CSampleCtrl)
(EVENT_STOCK_CLICK)
//}}AFX_EVENT_MAP
END_EVENT_MAP()
A macro EVENT_STOCK_CLICK indica que o Controlarar irá disparar um estoque clique evento sempre que detecta um clique do mouse. Para uma lista mais detalhada de outros eventos de ações, consulte o artigo controles ActiveX: eventos no Guia do programador do Visual C++. As macros também são disponíveis para indicar eventos personalizados.
Embora as macros de mapa de evento são importantes, você geralmente não inseri-los diretamente. Isto é porque o ClassWizard cria automaticamente entradas de mapa de evento nos arquivos de origem quando você usá-lo para associar funções de acionamento de evento eventos. Qualquer hora que você deseja editar ou adicionar uma entrada de mapa de evento, você pode usar ClassWizard.
Para oferecer suporte a mapas de eventos, MFC fornece as seguintes macros:
Demarcação e declaração do mapa de evento
| DECLARE_EVENT_MAP | Declara que um mapa de eventos será usado em uma classe para mapear eventos para funções de acionamento de evento (devem ser usadas na declaração da classe). |
| BEGIN_EVENT_MAP | Inicia a definição de um mapa de eventos (deve ser usado na implementação de classe). |
| END_EVENT_MAP | Finaliza a definição de um mapa de eventos (deve ser usado na implementação de classe). |
Macros de mapeamento de eventos
| EVENT_CUSTOM | Indica qual função eventos-acionamento acionará o evento especificado. |
| EVENT_CUSTOM_ID | Indica qual função eventos-acionamento acionará o evento especificado, com um ID de expedição designado. |
Mensagem mapeamento Macros
| ON_OLEVERB | Indica um verbo Personalizar Tratado pelo Controlarar OLE. |
| ON_STDOLEVERB | Substitui um mapeamento de verbo padrão do Controlarar OLE. |