Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um controle ActiveX aciona eventos para se comunicar entre si e seu contêiner de controle. Um contêiner também pode se comunicar com um controle por meio de métodos e propriedades. Os métodos também são chamados de funções.
Métodos e propriedades fornecem uma interface exportada para uso por outros aplicativos, como clientes de Automação e contêineres de controle ActiveX. Para obter mais informações sobre as propriedades de controle ActiveX, consulte o artigo Controles ActiveX do MFC: Propriedades.
Os métodos são semelhantes em uso e finalidade às funções membro de uma classe C++. Há dois tipos de métodos que seu controle pode implementar: estoque e personalizado. Semelhantes aos eventos de estoque, os métodos de estoque são os métodos para os quais o COleControl fornece uma implementação. Para obter mais informações sobre métodos de estoque, consulte o artigo Controles ActiveX do MFC: adicionando métodos de estoque. Os métodos personalizados, definidos pelo desenvolvedor, permitem personalização adicional do controle. Para obter mais informações, consulte o artigo Controles ActiveX do MFC: adicionando métodos personalizados.
A Biblioteca de Classes do Microsoft Foundation (MFC) implementa um mecanismo que permite que seu controle dê suporte a métodos padrão e personalizados. A primeira parte é a classe COleControl. Derivadas de CWnd e COleControl, as funções membro dão suporte a métodos padrão comuns a todos os controles ActiveX. A segunda parte desse mecanismo é o mapa de despacho. Um mapa de expedição é semelhante a um mapa de mensagens; no entanto, em vez de mapear uma função para uma ID de mensagem do Windows, um mapa de expedição mapeia funções de membro virtual para IDS de IDispatch.
Para que um controle dê suporte a vários métodos corretamente, sua classe deve declarar um mapa de despacho. Isso é feito pela seguinte linha de código localizada no cabeçalho da classe de controle (. H) arquivo:
DECLARE_DISPATCH_MAP()
A principal finalidade do mapa de despacho é estabelecer a relação entre os nomes de método usados por um chamador externo (como o contêiner) e as funções membro da classe do controle que implementam o método. Depois que o mapa de despacho tiver sido declarado, ele precisará ser definido na implementação do controle (arquivo .CPP). As seguintes linhas de código definem o mapa de expedição:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
Se você usou o Assistente de Controle ActiveX do MFC para criar o projeto, essas linhas foram adicionadas automaticamente. Se o Assistente de Controle ActiveX do MFC não tiver sido usado, você deverá adicionar essas linhas manualmente.
Os seguintes artigos discutem os métodos em detalhes:
Controles ActiveX do MFC: adicionando métodos personalizados
Controles ActiveX do MFC: retornando códigos de erro de um método