COleControl

La classe COleControl est une puissante classe de base pour le développement de contrôles OLE. Dérivée de CWnd, cette classe hérite de toutes les fonctionnalités d'un objet de fenêtre de Windows ainsi que les fonctionnalités supplémentaires spécifiques à OLE, comme événement de tir et la capacité de soutenir les méthodes et les propriétés.

OLE contrôles peuvent être insérés dans des applications de conteneur OLE et communiquent avec le conteneur à l'aide d'un système bidirectionnel de déclenchement de l'événement et exposer des méthodes et des propriétés pour le conteneur. Notez que les conteneurs OLE standard ne prennent en charge les fonctionnalités de base d'un contrôle OLE. Ils sont incapables de soutenir les fonctionnalités étendues d'un contrôle OLE. Déclenchement de l'événement se produit lorsque les événements sont envoyés au conteneur de certaines actions qui se déroulent dans le contrôle. À son tour, le conteneur communique avec le contrôle à l'aide d'une série d'exposés des méthodes et des propriétés analogues pour les fonctions de membre et les données membres d'une classe C++. Cette approche permet au développeur de contrôler l'apparence du contrôle et de notifier le conteneur lorsque certaines actions se produisent.

Contrôles sans fenêtre

OLE contrôles peuvent être utilisé en place active sans fenêtre. Contrôles sans fenêtre ont des avantages significatifs:

Les contrôles n'ont pas une fenêtre. Services qu'offre une fenêtre peuvent facilement être fournis via une unique partagée (habituellement le conteneur) la fenêtre et un peu de code de répartition. Une fenêtre est principalement une complication inutile sur l'objet.

Lorsque l'activation sans fenêtre est utilisée, le conteneur (qui possède une fenêtre) est responsable de fournir des services qui auraient autrement été versées par la fenêtre du contrôle. Par exemple, si votre contrôle a besoin d'interroger le focus clavier, la capture de la souris, ou obtenir un contexte de périphérique, ces opérations sont gérées par le conteneur. COleControl fonctions membres sans fenêtre-opération invoquer ces opérations sur le conteneur.

Lorsque l'activation sans fenêtre est activée, les délégués du conteneur d'entrée des messages de l'interface du contrôle IOleInPlaceObjectWindowless (une extension de IOleInPlaceObject pour le soutien sans fenêtre). COleControlde mise en œuvre de cette interface enverra ces messages via votre contrôle, après que le réglage de la souris coordonne correctement. Vous pouvez traiter ces messages comme des messages de fenêtre ordinaire, en ajoutant les entrées correspondantes à la carte message.

Dans un contrôle sans fenêtre, vous devez toujours utiliser les fonctions de membre de COleControl au lieu des fonctions de membre de CWnd correspondantes ou leurs fonctions Windows API connexes.

OLE objets de contrôle peuvent également créer une fenêtre uniquement lorsqu'elles deviennent actives, mais la quantité de travail nécessaire pour la transition inactif-actif monte et descend de la vitesse de la transition. Il y a des cas quand il s'agit d'un problème : par exemple, considérons une grille de zones de texte. Lorsque le curseur de haut en bas dans la colonne, chaque contrôle doit être en place activé et désactivé ensuite. La vitesse de la transition inactifs/actifs affectent directement la vitesse de défilement.

Pour plus d'informations sur l'élaboration d'un cadre de contrôle OLE, voir les articles Contrôles ActiveX et créer un programme avec le ActiveX ControlWizard dans le Guide du programmeur Visual C++. Pour plus d'informations sur l'ajout de fonctionnalités au-delà de la structure de base, voir construire un contrôle ActiveX (le tutoriel de cercle) dans Visual C++ tutoriels. Pour plus d'informations sur l'optimisation des contrôles OLE, y compris les contrôles sans fenêtre et sans scintillement, voir contrôles ActiveX : optimisation des dans le Guide du programmeur Visual C++.

# include lt;afxctl.h>

Membres de la classe |nbsp ; Classe de base | Graphique de la hiérarchie

Écha&ntillons denbsp ; MFC échantillon CIRC3 | Exemple MFC DRAWPIC | MFC exemple TESTHELP

Voir aussi  ;COlePropertyPage, CFontHolder, CPictureHolder

Index