Compartilhar via


Controles do ActiveX MFC

Um controle ActiveX é um componente de software reutilizável baseado no componente COM modelo de objeto () que oferece suporte a uma ampla variedade de funcionalidades OLE e podem ser personalizados para atender às necessidades de software muitos.Os controles ActiveX são criados para uso em recipientes de controle ActiveX comuns e na Internet, páginas da World Wide Web.Você pode criar controles ActiveX com MFC, descritos aqui ou com o O ativo modelo biblioteca (ATL).

Um controle ActiveX pode desenhar si em sua própria janela, responder a eventos (sistema autônomo cliques do mouse) e ser gerenciado por meio de uma interface que inclui propriedades e métodos semelhantes aos objetos de automação.

Esses controles podem ser desenvolvidos para diversos propósitos, sistema autônomo acesso a banco de dados, dados de monitoramento ou gráficos.Além de portabilidade, controles ActiveX oferecem suporte a recursos anteriormente não disponível para controles ActiveX, sistema autônomo, por exemplo, compatibilidade com recipientes OLE existentes e a capacidade de integrar seus menus sistema autônomo menus de contêiner OLE.Além disso, um controle ActiveX totalmente oferece suporte à automação, que permite que o controle para expor propriedades leitura\gravar e um conjunto de métodos que pode ser chamado pelo controle de usuário.

Você pode criar controles ActiveX sem janelas e controles que criar apenas uma janela quando essas tornam-se ativo.Controles sem janelas acelerar a exibição do seu aplicativo e tornam possível fazer com que controles não-retangulares e transparente.Também é possível carregar propriedades do controle ActiveX assincronamente.

Um controle ActiveX é implementado sistema autônomo um servidor em processo (normalmente um objeto pequeno) que pode ser usado em qualquer contêiner OLE.Observe que a funcionalidade completa de um controle ActiveX está disponível somente quando usada em um contêiner OLE projetado para ser ciente dos controles ActiveX.See Porta ActiveX Controls para outros aplicativos para obter uma lista de recipientes que ofereçam suporte a controles ActiveX.Esse tipo de contêiner, daqui em diante chamado de "contêiner de controle", pode operar um controle ActiveX usando propriedades e métodos do controle e recebe notificações do controle ActiveX na forma de eventos.A figura a seguir demonstra essa interação.

Interação entre um contêiner de controle ActiveX e um controle ActiveX de janela

Para algumas informações recentes sobre como otimizar os controles ActiveX, consulte Os controles ActiveX MFC: Otimização de.

Para criar um controle MFC ActiveX, consulte Criar um projeto de controle ActiveX.

Para obter mais informações, consulte:

Componentes básicos de um controle ActiveX

Um controle ActiveX usa vários elementos através de programação para interagir com eficiência com um controle contêiner e com o usuário.Esses são classe COleControl, um conjunto de funções de acionamento do evento e um MAP de despacho.

Cada objeto de controle ActiveX que desenvolver herda um poderoso conjunto de recursos da sua classe base MFC, COleControl. Esses recursos incluem ativação in-loco e lógica de automação.COleControl pode fornecer o objeto de controle com a mesma funcionalidade que um objeto de janela MFC, além da capacidade de disparar eventos. COleControl também pode fornecer controles sem janelas, que dependem de seus recipientes para obter ajuda com algumas das funcionalidades fornece uma janela (capturar do mouse, o foco do teclado, de rolagem), mas oferece muito mais rápido do vídeo.

Porque a classe de controle deriva de COleControl, ela herda a capacidade de enviar ou "incêndio", mensagens, chamado eventos, para o controle contêiner quando determinadas condições forem atendidas. Esses eventos são usados para notificar o contêiner de controle quando algo importante acontece no controle.Você pode enviar informações adicionais sobre um evento para o contêiner de controle, anexando parâmetros para o evento.Para obter mais informações sobre eventos de controle ActiveX, consulte o artigo Os controles ActiveX MFC: Eventos.

O elemento final é um MAP de despacho, que é usado para expor um conjunto de atributos (denominados propriedades) para o controle de usuário e funções (chamadas de métodos).Propriedades permitem que o contêiner de controle ou o usuário do controle para manipular o controle de várias maneiras.O usuário pode alterar a aparência do controle, alterar determinados valores do controle ou fazer solicitações de controle, sistema autônomo acessar uma parte específica dos dados que mantém o controle.Essa interface é determinada pelo desenvolvedor do controle e é definida usando Modo de exibição de classe.Para obter mais informações sobre propriedades e métodos do controle ActiveX, consulte o artigos Os controles ActiveX MFC: Métodos e Propriedades.

Interação entre os controles com o Windows e recipientes de controle ActiveX

Quando um controle é usado dentro de um contêiner de controle, ele usa dois mecanismos para comunicar-se: expõe propriedades e métodos e aciona eventos.A figura a seguir demonstra como esses dois mecanismos são implementados.

Comunicação entre um contêiner de controle ActiveX e um controle ActiveX

A figura anterior também ilustra como outras interfaces OLE (além de automação e eventos) são manipulados pelos controles.

Todos a comunicação de um controle com o contêiner é realizada por COleControl. Para lidar com alguns do contêiner solicita, COleControl chamará membro funções que são implementadas na classe de controle.Todos os métodos e algumas propriedades são tratadas dessa maneira.Classe do controle também pode iniciar a comunicação com o contêiner chamando funções de membro de COleControl. Eventos são disparados dessa maneira.

Estados ativo e inativo de um controle ActiveX

Um controle tem dois estados básicos: ativo e inativo.Tradicionalmente, esses estados foram diferenciados por se o controle tinha uma janela.Um controle ativo tinha uma janela; não especificou um controle inativo.Com a introdução de ativação sem janelas, esta distinção não está mais universal, mas ainda se aplica a muitos controles.

Quando um controle sem janelas fica ativo, ele invoca a capturar do mouse, o foco do teclado, de rolagem e outros serviços de janela de seu contêiner.Você também pode Fornece interação com o mouse para controles inativo, bem sistema autônomo criar controles que Aguarde até que ativado para criar uma janela.

Quando um controle com uma janela se torna ativo, é capaz de interagir totalmente com o contêiner de controle, o usuário e o Windows.A figura a seguir demonstra os caminhos de comunicação entre o controle ActiveX, o contêiner de controle e o sistema operacional.

Mensagem de Windows processamento em um controle ActiveX janela (quando ativo)

Série

A capacidade de serializar dados, às vezes chamados de persistência, permite que o controle gravar o valor de suas propriedades para armazenamento persistente.Controles podem ser recriados, em seguida, lendo o estado do objeto do armazenamento.

Observe que um controle não é responsável por obter acesso à meio de armazenamento.Em vez disso, o contêiner do controle é responsável por fornecer o controle com uma meio de armazenamento para usar em momentos apropriados.Para obter mais informações sobre a serialização, consulte o artigo Os controles ActiveX MFC: De serialização.Para obter informações sobre como otimizar a serialização, consulte Otimização de persistência e inicialização controles ActiveX: Otimização.

Instalar controle ActiveX de classes e ferramentas

Quando você instala o Visual C++, do ActiveX MFC controlar classes e de varejo e depurar o controle ActiveX, DLLs de time de execução são instaladas automaticamente se os controles ActiveX estiverem selecionados na configuração (eles são selecionados por padrão).

Por padrão, as ferramentas e classes de controle ActiveX são instaladas nos seguintes subdiretórios em \programa Files\Microsoft Visual Studio .NET:

  • \Common7\Tools

    Contém sistema autônomo arquivos de contêiner de teste (TstCon32.exe, bem sistema autônomo seus arquivos de Ajuda).

  • \Vc7\atlmfc\include

    Contém os arquivos são necessários para desenvolver controles ActiveX com MFC

  • \Vc7\atlmfc\src\mfc

    Contém o código-fonte para classes específicas de controle ActiveX no MFC

  • \Vc7\atlmfc\lib

    Contém as bibliotecas necessárias para desenvolver controles ActiveX com MFC

Também há exemplos de controles MFC ActiveX.Para obter mais informações sobre esses exemplos, consulte Exemplos de controles: MFC com controles ActiveX

Consulte também

Outros recursos

Interface de usuário