Compartilhar via


Controles ActiveX MFC: métodos

Um controle ActiveX aciona eventos para se comunicar com 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 propriedades de controle ActiveX, confira o artigo Controles ActiveX 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 e eventos de estoque, os métodos de estoque são os métodos para os quais COleControl fornece uma implementação. Para obter mais informações sobre métodos de estoque, confira o artigo Controles ActiveX MFC: adicionando métodos de estoque. Métodos personalizados, definidos pelo desenvolvedor, permitem personalização adicional do controle. Para obter mais informações, consulte o artigo Controles ActiveX MFC: adicionando métodos personalizados.

A biblioteca Microsoft Foundation Class (MFC) implementa um mecanismo que permite que seu controle dê suporte a métodos personalizados e de estoque. A primeira parte é a classe COleControl. Derivadas de CWnd, as funções membro COleControl dão suporte a métodos de estoque comuns a todos os controles ActiveX. A segunda parte desse mecanismo é o mapa de expedição. 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 expedição. Isso é feito pela seguinte linha de código localizada no arquivo de cabeçalho da classe de controle (. H):

DECLARE_DISPATCH_MAP()

A principal finalidade do mapa de expedição é 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 os métodos. Depois que o mapa de expedição tiver sido declarado, ele precisará ser definido no arquivo de implementação do controle (.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 MFC para criar o projeto, essas linhas foram adicionadas automaticamente. Se o Assistente de Controle ActiveX MFC não foi usado, será necessário adicionar essas linhas manualmente.

Os seguintes artigos abordam os métodos em detalhes:

Confira também

Controles ActiveX do MFC