Partilhar via


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

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

ObservaçãoObservação

Este artigo usa um baseado em diálogo ActiveX controle recipiente projeto chamado Container e um controle incorporado chamado Circ como exemplos de código e procedimentos.

Usando o botão eventos na janela Propriedades, você pode criar um mapa de eventos que podem ocorrer no seu aplicativo de contêiner de controle ActiveX.Esse mapa, denominado um "mapa de coletor de evento ', é criado e mantido pelo Visual C++ quando você adicionar manipuladores de eventos para a classe de contêiner de controle.Cada manipulador de eventos implementado com uma entrada de mapa de evento mapeia um evento específico para uma função de membro de manipulador de evento do recipiente.Esta função de manipulador de evento é chamada quando o evento especificado é disparado pelo objeto de controle ActiveX.

Para obter mais informações sobre mapas de coletor de eventos, consulte Evento Sink mapeia na Referência de biblioteca de classe.

Modificações de manipulador de eventos para o projeto

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

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)


...


END_EVENTSINK_MAP()

Como usar a janela Propriedades para adicionar eventos, um evento mapear entrada (ON_EVENT) é adicionado ao mapa de coletor de evento e um manipulador de eventos função é adicionada a implementação do contêiner (.Arquivo CPP).

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 para o CContainerDlg implementação de classe (.Arquivo CPP) para a função de membro de manipulador de eventos:

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 de coletor de eventos na Referência de biblioteca de classe.

Para criar uma função de manipulador de eventos

  1. No modo de exibição de classe, selecione a classe de diálogo que contém o controle de ActiveX.Para este exemplo, use CContainerDlg.

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

  3. Na janela Propriedades, selecione a identificação do controle do controle ActiveX incorporado.Para este exemplo, use IDC_CIRCCTRL1.

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

  4. Selecione o evento que você deseja que a classe de diálogo para manipular.Neste exemplo, selecione clique em.

  5. Na caixa de lista suspensa à direita, selecione <Add> ClickCircctrl1.

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

Consulte também

Conceitos

Recipientes de controle ActiveX