Partilhar via


Controles ActiveX MFC: Métodos

Um controle ActiveX dispara 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 do controle ActiveX, consulte o artigo Controles ActiveX MFC: Propriedades.

Os métodos são semelhantes em uso e finalidade às funções de membro de uma classe C++. Existem dois tipos de métodos que o seu comando pode implementar: padrão e personalizado. Semelhante aos eventos de estoque, os métodos de estoque são aqueles 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 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.

O Microsoft Foundation Class Library (MFC) implementa um mecanismo que permite que seu controle ofereça suporte a métodos de estoque e personalizados. A primeira parte é a aula COleControl. Derivadas de CWnd, as funções membro de COleControl suportam métodos padrão que são comuns a todos os controlos ActiveX. A segunda parte deste mecanismo é o mapa de despacho. Um mapa de envio é semelhante a um mapa de mensagens; no entanto, em vez de mapear uma função para um ID de mensagem do Windows, um mapa de despacho mapeia funções de membro virtual para IDispatch IDS.

Para que um controle ofereça 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):

DECLARE_DISPATCH_MAP()

O principal objetivo 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 de membro da classe do controle que implementam os métodos. Depois de declarado o mapa de despacho, é necessário defini-lo na implementação da controladora (.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, você deve adicionar essas linhas manualmente.

Os seguintes artigos discutem métodos em detalhes:

Ver também

Controles ActiveX MFC