Recipientes de controle ActiveX: Manipulação de eventos de um controle ActiveX

Este artigo discute usando janela Propriedades para instalar manipuladores de eventos para controles ActiveX em um contêiner de controle ActiveX.O evento manipuladores são usados para receber notificações (de controle) de certos s evento e executar alguma ação em resposta.Esta notificação é chamada de "acionamento" o evento.

Observação:

Este artigo usa um projeto de contêiner de controle ActiveX dialog-based chamado contêiner e um nome de controle incorporado d Circ sistema autônomo exemplos nos procedimentos e código.

Usando o botão eventos na janela Propriedades, você pode criar um MAP dos eventos que podem ocorrer em seu aplicativo de contêiner do controle ActiveX.Esse MAP, chamado de "MAP de coletor de evento '', é criado e mantido pelo Visual C++ quando você adiciona manipuladores de eventos à classe de contêiner de controle.Cada manipulador de eventos, implementada com uma entrada de MAP de eventos, mapeia um evento específico para uma função de membro contêiner manipulador de eventos.Esta função de manipulador de eventos é chamada quando o evento especificado é acionado pelo objeto de controle ActiveX.

Para obter mais informações sobre mapas de coletor de eventos, consulte Mapas do evento sink in the Referência da biblioteca de classes.

manipulador de eventos Modificações para o projeto

Quando você usar janela Propriedades para adicionar evento manipuladores, um evento MAP coletor é declarado e definido no seu projeto.As instruções a seguir são adicionadas ao arquivo .CPP controle na primeira vez um manipulador de eventos é adicionado.Esse código declara um MAP de coletor de evento para a classe de caixa de diálogo (neste caso, CContainerDlg):

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)


...


END_EVENTSINK_MAP()

sistema autônomo você usa janela Propriedades para adicionar eventos, uma entrada de MAP de evento (ON_EVENT) é adicionado ao MAP de coletor de eventos e um manipulador de eventos função é adicionada ao arquivo de implementação (.CPP) do contêiner.

O exemplo a seguir declara um manipulador de eventos, chamado OnClickInCircCtrl, para o controle de Circ ClickIn evento:

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
   ON_EVENT(CContainerDlg, IDC_CIRCCTRL1, 1 /* ClickIn */, OnClickInCircctrl1, 
      VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

Além disso, o modelo a seguir é adicionado à CContainerDlg implementação da classe (.CPP) de arquivos para o manipulador de eventos função de membro:

BOOL CContainerDlg::OnClickInCircctrl1(OLE_XPOS_PIXELS nX, OLE_YPOS_PIXELS nY)
{
   // use nX and nY here
   TRACE(_T("nX = %d, nY = %d\n"), nX, nY);
   return TRUE;
}

Para obter mais informações sobre macros de coletor de eventos, consulte Mapas do evento sink in the Referência da biblioteca de classes.

Para criar um evento função de manipulador

  1. Modo de Exibição de Classe, selecionar a classe de caixa de diálogo que contém o controle ActiveX.Para esse exemplo, use CContainerDlg.

  2. Na janela Propriedades, clique no botão Eventos.

  3. Na janela Propriedades, selecionar a ID do controle do controle ActiveX incorporado.Para esse exemplo, use IDC_CIRCCTRL1.

    janela Propriedades exibe uma lista de eventos pode ser disparado pelo controle ActiveX incorporado.Qualquer função de membro mostrada em negrito já tem o manipulador de funções atribuídas a ele.

  4. selecionar o evento que você deseja que a classe de caixa de diálogo para manipular.Neste exemplo, selecionar clicar.

  5. Na caixa de listagem suspensa à direita, selecionar <add>ClickCircctrl1.

  6. clicar duas vezes a nova função de manipulador de modo de exibição de classe para saltar para o código do manipulador de eventos no arquivo de implementação (.CPP) de CContainerDlg.

Consulte também

Conceitos

Recipientes de controle ActiveX