Compartilhar via


Classe COleControl

Uma classe base poderosa para desenvolvimento de controles OLE.

class COleControl : public CWnd

Comentários

Derivado de CWnd, esta classe herda toda a funcionalidade de um objeto de janela do Windows mais funcionalidades adicionais específicas para OLE, sistema autônomo acionamento de eventos e a capacidade de oferecer suporte a métodos e propriedades.

Controles OLE podem ser inseridos em aplicativos de contêiner OLE e se comunicar com o contêiner por meio de um sistema de acionamento do evento e exposição métodos e propriedades para o contêiner bidirecional.Observe que recipientes OLE padrão oferecem suporte apenas a funcionalidade básica de um controle OLE.Eles não conseguem oferecer suporte a recursos estendidos de um controle OLE.Evento de acionamento ocorre quando eventos são enviados para o contêiner de determinadas ações que ocorrem no controle.Por sua vez, o contêiner se comunica com o controle, usando um conjunto de métodos e propriedades análogas às funções de membro exposto e membros de dados de uma classe C++.Essa abordagem permite ao desenvolvedor controlar a aparência do controle e notificar o contêiner quando certas ações ocorrem.

Controles sem janelas

Controles OLE podem ser usado ativo no local sem uma janela.Controles sem janelas têm vantagens significativas:

  • Controles sem janelas podem ser transparente e não-retangular

  • Controles sem janelas reduzem o time de dimensionar e a criação de instância do objeto

Controles não precisam de uma janela.Serviços que oferece uma janela podem ser com com facilidade fornecidos via única compartilhada de uma janela (geralmente o contêiner) e um bit de código de expedição.Ter uma janela é principalmente uma complicação desnecessária no objeto.

Quando a ativação sem janelas é usada, o contêiner (que tem uma janela) é responsável por fornecer serviços que do contrário poderiam ter sido fornecidos pela janela do controle.Por exemplo, se o seu controle precisar consultar o foco do teclado, consultar a capturar do mouse ou obter um contexto de dispositivo, essas operações são gerenciadas pelo contêiner.The COleControl windowless-operation member functions invoke these operations on the container.

Quando sem janelas ativação esteja habilitada, os delegados de contêiner inserir mensagens IOleInPlaceObjectWindowless (uma extensão de interface IOleInPlaceObject para suporte sem janelas).COleControlda implementação dessa interface enviará estas mensagens através do MAP da mensagem do controle, depois de ajustar o mouse coordena apropriadamente. Você pode processar essas mensagens como mensagens de janela normal, adicionando as entradas correspondentes ao MAP da mensagem.

Em um controle sem janelas, você sempre deve usar o COleControl funções de membro em vez do correspondente CWnd funções de membro ou suas funções da API do Windows relacionadas.

Objetos de controle OLE também podem criar uma janela somente quando eles ficarem ativos, mas a quantidade de trabalho necessário para a transição ativo inativo sobe e a velocidade da transição for desligado.Há casos em que este é um problema: sistema autônomo exemplo, considere uma grade de caixas de texto.Quando cursor para cima e para baixo através da coluna, cada controle deve ser local ativado e, em seguida, desativado.A velocidade da transição ativo/inativo afetará diretamente a velocidade de rolagem.

Para obter mais informações sobre o desenvolvimento de uma estrutura de controle OLE, consulte o artigo Controles do ActiveX MFC and Visão geral: Criando um programa de controle ActiveX MFC.Para obter informações sobre como otimizar controles OLE, incluindo controles sem janelas e sem cintilações, consulte Os controles ActiveX MFC: Otimização de.

Requisitos

Cabeçalho: afxctl.h

Consulte também

Tarefas

Exemplo CIRC: Controlarar ActiveX

Exemplo TESTHELP: Controlarar ActiveX com dicas de ferramentas e a Ajuda

Referência

Classe COlePropertyPage

Classe CWnd

Gráfico de hierarquia

Classe CFontHolder

Classe CPictureHolder

Outros recursos

COleControl membros