COleControl

A classe COleControl é uma classe base poderosa para o desenvolvimento de controles OLE. Derivado de CWnd, esta classe herda toda a funcionalidade de um objeto de janela do Windows além de outras funcionalidades específicas para OLE, como o disparo de eventos e a capacidade para oferecer suporte a métodos e propriedades.

OLE controles podem ser inseridos em aplicativos de contêiner OLE e se comunicar com o contêiner usando um sistema bidirecional do acionamento do evento e expondo métodos e propriedades para o contêiner. Note que recipientes OLE padrão suportam somente o basic funcionalidade de um Controlarar OLE. Eles são incapazes de oferecer suporte a recursos estendidos de um Controlarar OLE. Acionamento do evento ocorre quando eventos são enviados para o contêiner de determinadas ações que ocorrem no Controlarar. Por sua vez, o contêiner se comunica com o Controlarar, 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 que o desenvolvedor controlar a aparência do Controlarar e notificar o contêiner quando certas ações ocorrem.

Controles sem janelas

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

Controles não precisa de uma janela. Serviços que oferece uma janela facilmente podem ser fornecidos através de uma única compartilhada (geralmente o contêiner) da janela e um pouco de código de expedição. Ter uma janela é principalmente uma complicação desnecessária no objeto.

Quando for utilizada activação sem janelas, o recipiente (que tem uma janela) é responsável por fornecer serviços que caso contrário teriam sido disponibilizados pela janela do controle. Por exemplo, se o Controlarar precisa consultar o foco do teclado, captura a mouse de consulta ou obter um contexto de dispositivo, essas operações são gerenciadas pelo contêiner. O COleControl funções de operação sem janelas chamar essas operações no recipiente.

Quando a ativação sem janelas é habilitada, os delegados de contêiner entrada mensagens a interface de IOleInPlaceObjectWindowless do Controlarar (uma extensão do IOleInPlaceObject para suporte sem janelas). COleControlda implementação dessa interface irá enviar essas mensagens por meio de mapa da mensagem do Controlarar, depois de ajustar o mouse coordenadas adequadamente. Você pode Processoar essas mensagens como mensagens de janela normal, adicionando as entradas correspondentes ao mapa da mensagem.

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

OLE controlar objetos também podem criar uma janela apenas quando eles tornar-se ativo, mas a quantidade de trabalho necessária para a transição de inativo ativo sobe e desce a velocidade da transição. Há casos em que este é um problema: como exemplo, considere uma grade de caixas de texto. Quando cursoring cima e para baixo através da coluna, cada Controlarar deve estar no local ativado e, em seguida, desativado. A velocidade da transição ativo/inativo afetará diretamente a velocidade de deslocação.

Para obter mais informações sobre o desenvolvimento de um quadro de controlo OLE, consulte os artigos Controlos ActiveX e criar um programa com o ActiveX WebAssistente no Guia do programador do Visual C++. Para obter mais informações sobre como adicionar funcionalidade para além do quadro básico, consulte construção de um controle ActiveX (tutorial do círculo) no Visual C++ tutoriais. Para obter informações sobre como otimizar OLE controles, incluindo controles sem janelas e cintilação, consulte ActiveX controles: otimização no Guia do programador do Visual C++.

# include lt;afxctl.h>

Membros da classe |nbsp; Classe base | Gráfico de hierarquia

&Nbsp amostras; MFC exemplo CIRC3 | MFC exemplo DRAWPIC | MFC exemplo TESTHELP

Co&nsulte tambémnbsp;COlePropertyPage, CFontHolder, CPictureHolder

Index