Partager via


COleControl, classe

Classe de base puissante pour développer des contrôles OLE.

Syntaxe

class COleControl : public CWnd

Membres

Constructeurs publics

Nom Description
COleControl ::COleControl Crée un objet COleControl.

Méthodes publiques

Nom Description
COleControl ::AmbientAppearance Récupère l’apparence actuelle du contrôle.
COleControl ::AmbientBackColor Retourne la valeur de la propriété BackColor ambiante.
COleControl ::AmbientDisplayName Retourne le nom du contrôle tel que spécifié par le conteneur.
COleControl ::AmbientFont Retourne la valeur de la propriété Font ambiante.
COleControl ::AmbientForeColor Retourne la valeur de la propriété ForeColor ambiante.
COleControl ::AmbientLocaleID Retourne l’ID de paramètres régionaux du conteneur.
COleControl ::AmbientScaleUnits Retourne le type d’unités utilisées par le conteneur.
COleControl ::AmbientShowGrabHandles Détermine si les poignées de saisie doivent être affichées.
COleControl ::AmbientShowHatching Détermine si le hachage doit être affiché.
COleControl ::AmbientTextAlign Retourne le type d’alignement du texte spécifié par le conteneur.
COleControl ::AmbientUIDead Détermine si le contrôle doit répondre aux actions de l’interface utilisateur.
COleControl ::AmbientUserMode Détermine le mode du conteneur.
COleControl ::BoundPropertyChanged Avertit le conteneur qu’une propriété liée a été modifiée.
COleControl ::BoundPropertyRequestEdit Demande l’autorisation de modifier la valeur de propriété.
COleControl ::ClientToParent Traduit un point par rapport à l’origine du contrôle en un point par rapport à l’origine de son conteneur.
COleControl ::ClipCaretRect Ajuste un rectangle de caresse s’il se chevauche par un contrôle.
COleControl ::ControlInfoChanged Appelez cette fonction après que l’ensemble de mnémoniques géré par le contrôle a changé.
COleControl ::D isplayError Affiche les événements d’erreur stock à l’utilisateur du contrôle.
COleControl ::D oClick Implémentation de la méthode de stock DoClick .
COleControl ::D oPropExchange Sérialise les propriétés d’un COleControl objet.
COleControl ::D oSuperclassPaint Redessine un contrôle OLE qui a été sous-classé à partir d’un contrôle Windows.
COleControl ::EnableSimpleFrame Permet une prise en charge simple des images pour un contrôle.
COleControl ::ExchangeExtent Sérialise la largeur et la hauteur du contrôle.
COleControl ::ExchangeStockProps Sérialise les propriétés boursières du contrôle.
COleControl ::ExchangeVersion Sérialise le numéro de version du contrôle.
COleControl ::FireClick Déclenche l’événement boursier Click .
COleControl ::FireDblClick Déclenche l’événement boursier DblClick .
COleControl ::FireError Déclenche l’événement boursier Error .
COleControl ::FireEvent Déclenche un événement personnalisé.
COleControl ::FireKeyDown Déclenche l’événement boursier KeyDown .
COleControl ::FireKeyPress Déclenche l’événement boursier KeyPress .
COleControl ::FireKeyUp Déclenche l’événement boursier KeyUp .
COleControl ::FireMouseDown Déclenche l’événement boursier MouseDown .
COleControl ::FireMouseMove Déclenche l’événement boursier MouseMove .
COleControl ::FireMouseUp Déclenche l’événement boursier MouseUp .
COleControl ::FireReadyStateChange Déclenche un événement lorsque l’état prêt du contrôle change.
COleControl ::GetActivationPolicy Modifie le comportement d’activation par défaut d’un contrôle qui prend en charge l’interface IPointerInactive .
COleControl ::GetAmbientProperty Retourne la valeur de la propriété ambiante spécifiée.
COleControl ::GetAppearance Retourne la valeur de la propriété Apparence du stock.
COleControl ::GetBackColor Retourne la valeur de la propriété BackColor stock.
COleControl ::GetBorderStyle Retourne la valeur de la propriété BorderStyle boursier.
COleControl ::GetCapture Détermine si un objet de contrôle sans fenêtre activé possède la capture de la souris.
COleControl ::GetClassID Récupère l’ID de classe OLE du contrôle.
COleControl ::GetClientOffset Récupère la différence entre le coin supérieur gauche de la zone rectangulaire du contrôle et le coin supérieur gauche de sa zone cliente.
COleControl ::GetClientRect Récupère la taille de la zone cliente du contrôle.
COleControl ::GetClientSite Interroge un objet pour le pointeur vers son site client actuel dans son conteneur.
COleControl ::GetControlFlags Récupère les paramètres de l’indicateur de contrôle.
COleControl ::GetControlSize Retourne la position et la taille du contrôle OLE.
COleControl ::GetDC Fournit un moyen pour un contrôle sans fenêtre d’obtenir un contexte d’appareil à partir de son conteneur.
COleControl ::GetEnabled Retourne la valeur de la propriété Stock Enabled.
COleControl ::GetExtendedControl Récupère un pointeur vers un objet de contrôle étendu appartenant au conteneur.
COleControl ::GetFocus Détermine si le contrôle a le focus.
COleControl ::GetFont Retourne la valeur de la propriété Font stock.
COleControl ::GetFontTextMetrics Retourne les métriques d’un CFontHolder objet.
COleControl ::GetForeColor Retourne la valeur de la propriété ForeColor.
COleControl ::GetHwnd Retourne la valeur de la propriété hWnd stock.
COleControl ::GetMessageString Fournit le texte de la barre d’état d’un élément de menu.
COleControl ::GetNotSupported Empêche l’accès à la valeur de propriété d’un contrôle par l’utilisateur.
COleControl ::GetReadyState Retourne l’état de préparation du contrôle.
COleControl ::GetRectInContainer Retourne le rectangle du contrôle par rapport à son conteneur.
COleControl ::GetStockTextMetrics Retourne les métriques de la propriété Font stock.
COleControl ::GetText Retourne la valeur de la propriété Texte ou Légende boursier.
COleControl ::GetWindowlessDropTarget Remplacez pour autoriser un contrôle sans fenêtre à être la cible des opérations de glisser-déplacer.
COleControl ::InitializeIIDs Informe la classe de base des IID que le contrôle utilisera.
COleControl ::InternalGetFont Retourne un CFontHolder objet pour la propriété Font stock.
COleControl ::InternalGetText Récupère la propriété Stock Caption ou Text.
COleControl ::InternalSetReadyState Définit l’état de préparation du contrôle et déclenche l’événement ready-state-change.
COleControl ::InvalidateControl Invalide une zone du contrôle affiché, ce qui lui permet de redessiner.
COleControl ::InvalidateRgn Invalide la zone cliente de la fenêtre de conteneur dans la région donnée. Peut être utilisé pour redessiner des contrôles sans fenêtre dans la région.
COleControl ::IsConvertingVBX Autorise le chargement spécialisé d’un contrôle OLE.
COleControl ::IsModified Détermine si l’état du contrôle a changé.
COleControl ::IsOptimizedDraw Indique si le conteneur prend en charge le dessin optimisé pour l’opération de dessin actuelle.
COleControl ::IsSubclassedControl Appelé pour déterminer si le contrôle sous-classe un contrôle Windows.
COleControl ::Load Réinitialise toutes les données asynchrones précédentes et initie une nouvelle charge de la propriété asynchrone du contrôle.
COleControl ::LockInPlaceActive Détermine si votre contrôle peut être désactivé par le conteneur.
COleControl ::OnAmbientPropertyChange Appelé lorsqu’une propriété ambiante est modifiée.
COleControl ::OnAppearanceChanged Appelé lorsque la propriété d’apparence du stock est modifiée.
COleControl ::OnBackColorChanged Appelé lorsque la propriété BackColor boursier est modifiée.
COleControl ::OnBorderStyleChanged Appelé lorsque la propriété BorderStyle boursier est modifiée.
COleControl ::OnClick Appelé pour déclencher l’événement Stock Click.
COleControl ::OnClose Avertit le contrôle qui IOleControl::Close a été appelé.
COleControl ::OnDoVerb Appelé après l’exécution d’un verbe de contrôle.
COleControl ::OnDraw Appelé lorsqu’un contrôle est demandé pour se redessiner.
COleControl ::OnDrawMetafile Appelé par le conteneur lorsqu’un contrôle est demandé pour se redessiner à l’aide d’un contexte d’appareil de métafichier.
COleControl ::OnEdit Appelé par le conteneur pour activer un contrôle OLE.
COleControl ::OnEnabledChanged Appelé lorsque la propriété Stock Enabled est modifiée.
COleControl ::OnEnumVerbs Appelé par le conteneur pour énumérer les verbes d’un contrôle.
COleControl ::OnEventAdvise Appelé lorsque les gestionnaires d’événements sont connectés ou déconnectés d’un contrôle.
COleControl ::OnFontChanged Appelé lorsque la propriété Font stock est modifiée.
COleControl ::OnForeColorChanged Appelée lorsque la propriété ForeColor boursier est modifiée.
COleControl ::OnFreezeEvents Appelé quand les événements d’un contrôle sont gelés ou non.
COleControl ::OnGetColorSet Avertit le contrôle qui IOleObject::GetColorSet a été appelé.
COleControl ::OnGetControlInfo Fournit des informations mnemoniques au conteneur.
COleControl ::OnGetDisplayString Appelé pour obtenir une chaîne pour représenter une valeur de propriété.
COleControl ::OnGetInPlaceMenu Demande le handle du menu du contrôle qui sera fusionné avec le menu conteneur.
COleControl ::OnGetNaturalExtent Remplacez le remplacement pour récupérer la taille d’affichage du contrôle la plus proche de la taille proposée et ex mode tente.
COleControl ::OnGetPredefinedStrings Retourne des chaînes représentant des valeurs possibles pour une propriété.
COleControl ::OnGetPredefinedValue Retourne la valeur correspondant à une chaîne prédéfinie.
COleControl ::OnGetViewExtent Remplacer pour récupérer la taille des zones d’affichage du contrôle (peut être utilisée pour activer le dessin à deux passes).
COleControl ::OnGetViewRect Remplacez la conversion de la taille du contrôle en rectangle à partir d’une position spécifique.
COleControl ::OnGetViewStatus Remplacez la récupération de l’état d’affichage du contrôle.
COleControl ::OnHideToolBars Appelé par le conteneur lorsque l’interface utilisateur du contrôle est désactivée.
COleControl ::OnInactiveMouseMove Remplacez le conteneur pour que le contrôle inactif sous le pointeur de la souris distribue WM_MOUSEMOVE messages au contrôle.
COleControl ::OnInactiveSetCursor Remplacez le conteneur pour que le contrôle inactif sous le pointeur de la souris distribue WM_SETCURSOR messages au contrôle.
COleControl ::OnKeyDownEvent Appelé après le déclenchement de l’événement KeyDown boursier.
COleControl ::OnKeyPressEvent Appelé après le déclenchement de l’événement KeyPress boursier.
COleControl ::OnKeyUpEvent Appelé après le déclenchement de l’événement KeyUp boursier.
COleControl ::OnMapPropertyToPage Indique la page de propriétés à utiliser pour modifier une propriété.
COleControl ::OnMnemonic Appelé lorsqu’une touche mnémonique du contrôle a été enfoncée.
COleControl ::OnProperties Appelé lorsque le verbe « Propriétés » du contrôle a été appelé.
COleControl ::OnQueryHitPoint Remplacez la requête pour savoir si l’affichage d’un contrôle chevauche un point donné.
COleControl ::OnQueryHitRect Remplacez la requête pour savoir si l’affichage d’un contrôle chevauche n’importe quel point dans un rectangle donné.
COleControl ::OnRenderData Appelé par l’infrastructure pour récupérer les données au format spécifié.
COleControl ::OnRenderFileData Appelé par l’infrastructure pour récupérer des données à partir d’un fichier au format spécifié.
COleControl ::OnRenderGlobalData Appelé par l’infrastructure pour récupérer des données à partir de la mémoire globale au format spécifié.
COleControl ::OnResetState Réinitialise les propriétés d’un contrôle aux valeurs par défaut.
COleControl ::OnSetClientSite Avertit le contrôle qui IOleControl::SetClientSite a été appelé.
COleControl ::OnSetData Remplace les données du contrôle par une autre valeur.
COleControl ::OnSetExtent Appelé après la modification de l’étendue du contrôle.
COleControl ::OnSetObjectRects Appelée après la modification des dimensions du contrôle.
COleControl ::OnShowToolBars Appelé quand l’interface utilisateur du contrôle a été activée.
COleControl ::OnTextChanged Appelé lorsque la propriété Texte ou Légende boursier est modifiée.
COleControl ::OnWindowlessMessage Traite les messages de fenêtre (autres que les messages de souris et de clavier) pour les contrôles sans fenêtre.
COleControl ::P arentToClient Traduit un point par rapport à l’origine du conteneur en point par rapport à l’origine du contrôle.
COleControl ::P ostModalDialog Avertit le conteneur qu’une boîte de dialogue modale a été fermée.
COleControl ::P reModalDialog Avertit le conteneur qu’une boîte de dialogue modale est sur le point d’être affichée.
COleControl ::RecreateControlWindow Détruit et recrée la fenêtre du contrôle.
COleControl ::Refresh Force un repaint de l’apparence d’un contrôle.
COleControl ::ReleaseCapture Libère la capture de la souris.
COleControl ::ReleaseDC Libère le contexte d’appareil d’affichage d’un conteneur d’un contrôle sans fenêtre.
COleControl ::ReparentControlWindow Réinitialise le parent de la fenêtre de contrôle.
COleControl ::ResetStockProps Initialise les COleControl propriétés de stock à leurs valeurs par défaut.
COleControl ::ResetVersion Initialise le numéro de version à une valeur donnée.
COleControl ::ScrollWindow Permet à un contrôle sans fenêtre de faire défiler une zone dans son image active sur place sur l’affichage.
COleControl ::SelectFontObject Sélectionne une propriété Police personnalisée dans un contexte d’appareil.
COleControl ::SelectStockFont Sélectionne la propriété Font stock dans un contexte d’appareil.
COleControl ::SerializeExtent Sérialise ou initialise l’espace d’affichage du contrôle.
COleControl ::SerializeStockProps Sérialise ou initialise les COleControl propriétés boursières.
COleControl ::SerializeVersion Sérialise ou initialise les informations de version du contrôle.
COleControl ::SetAppearance Définit la valeur de la propriété d’apparence boursière.
COleControl ::SetBackColor Définit la valeur de la propriété BackColor stock.
COleControl ::SetBorderStyle Définit la valeur de la propriété BorderStyle stock.
COleControl ::SetCapture Fait en sorte que la fenêtre conteneur du contrôle prenne possession de la capture de la souris au nom du contrôle.
COleControl ::SetControlSize Définit la position et la taille du contrôle OLE.
COleControl ::SetEnabled Définit la valeur de la propriété Stock Enabled.
COleControl ::SetFocus Provoque la prise en charge de la fenêtre conteneur du contrôle par le focus d’entrée au nom du contrôle.
COleControl ::SetFont Définit la valeur de la propriété Font stock.
COleControl ::SetForeColor Définit la valeur de la propriété ForeColor stock.
COleControl ::SetInitialSize Définit la taille d’un contrôle OLE lorsqu’il s’affiche pour la première fois dans un conteneur.
COleControl ::SetModifiedFlag Modifie l’état modifié d’un contrôle.
COleControl ::SetNotPermitted Indique qu’une demande de modification a échoué.
COleControl ::SetNotSupported Empêche la modification de la valeur de propriété d’un contrôle par l’utilisateur.
COleControl ::SetRectInContainer Définit le rectangle du contrôle par rapport à son conteneur.
COleControl ::SetText Définit la valeur de la propriété Texte ou Légende boursier.
COleControl ::ThrowError Signale qu’une erreur s’est produite dans un contrôle OLE.
COleControl ::TransformCoords Transforme les valeurs de coordonnées entre un conteneur et le contrôle.
COleControl ::TranslateColor Convertit une valeur OLE_COLOR en valeur COLORREF.
COleControl ::WillAmbientsBeValidDuringLoad Détermine si les propriétés ambiantes seront disponibles la prochaine fois que le contrôle est chargé.
COleControl ::WindowProc Fournit une procédure Windows pour un COleControl objet.

Méthodes protégées

Nom Description
COleControl ::D rawContent Appelé par l’infrastructure lorsque l’apparence du contrôle doit être mise à jour.
COleControl ::D rawMetafile Appelé par l’infrastructure lorsque le contexte d’appareil de métafichier est utilisé.
COleControl ::IsInvokeAllowed Active l’appel de méthode Automation.
COleControl ::SetInitialDataFormats Appelé par l’infrastructure pour initialiser la liste des formats de données pris en charge par le contrôle.

Notes

Dérivée de CWnd, cette classe hérite de toutes les fonctionnalités d’un objet fenêtre Windows ainsi que des fonctionnalités supplémentaires spécifiques à OLE, telles que le déclenchement d’événements et la possibilité de prendre en charge les méthodes et les propriétés.

Les contrôles OLE peuvent être insérés dans des applications conteneur OLE et communiquer avec le conteneur à l’aide d’un système bidirectionnel de déclenchement d’événements et d’exposition de méthodes et de propriétés au conteneur. Notez que les conteneurs OLE standard prennent uniquement en charge les fonctionnalités de base d’un contrôle OLE. Ils ne peuvent pas prendre en charge les fonctionnalités étendues d’un contrôle OLE. Le déclenchement d’événements se produit lorsque les événements sont envoyés au conteneur en raison de certaines actions effectuées dans le contrôle. À son tour, le conteneur communique avec le contrôle à l’aide d’un ensemble exposé de méthodes et de propriétés analogues aux fonctions membres et aux membres de données 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

Les contrôles OLE peuvent être utilisés sur place sans fenêtre. Les contrôles sans fenêtre présentent des avantages significatifs :

  • Les contrôles sans fenêtre peuvent être transparents et non rectangulaires

  • Les contrôles sans fenêtre réduisent la taille de l’instance et le temps de création de l’objet

Les contrôles n’ont pas besoin d’une fenêtre. Les services qu’offre une fenêtre peuvent facilement être fournis via une seule fenêtre partagée (généralement celle du conteneur) et un peu de code de distribution. Avoir une fenêtre est principalement une complication inutile sur l’objet.

Lorsque l’activation sans fenêtre est utilisée, le conteneur (qui a une fenêtre) est chargé de fournir des services qui auraient autrement été fournis par la propre fenêtre du contrôle. Par exemple, si votre contrôle doit interroger le focus clavier, interroger la capture de la souris ou obtenir un contexte d’appareil, ces opérations sont gérées par le conteneur. Les COleControl fonctions membres de l’opération sans fenêtre appellent ces opérations sur le conteneur.

Lorsque l’activation sans fenêtre est activée, le conteneur délègue les messages d’entrée à l’interface du IOleInPlaceObjectWindowless contrôle (extension d’IOleInPlaceObject pour la prise en charge sans fenêtre). COleControlL’implémentation de cette interface distribue ces messages via la carte des messages de votre contrôle, après avoir ajusté les coordonnées de la souris de manière appropriée. Vous pouvez traiter ces messages comme les messages de fenêtre ordinaires, en ajoutant les entrées correspondantes à la carte des messages.

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

Les objets de contrôle OLE peuvent également créer une fenêtre uniquement lorsqu’ils deviennent actifs, mais la quantité de travail nécessaire pour la transition inactive active monte et la vitesse de la transition tombe en panne. Il existe des cas où il s’agit d’un problème : par exemple, considérez une grille de zones de texte. Lors du curseur vers le haut et le bas dans la colonne, chaque contrôle doit être activé sur place, puis désactivé. La vitesse de la transition inactive/active affecte directement la vitesse de défilement.

Pour plus d’informations sur le développement d’une infrastructure de contrôle OLE, consultez les articles MFC ActiveX Controls and Overview : Creating an MFC ActiveX Control Program. Pour plus d’informations sur l’optimisation des contrôles OLE, notamment les contrôles sans fenêtre et sans scintillement, consultez Contrôles ActiveX MFC : Optimisation.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

COleControl

Spécifications

En-tête : afxctl.h

COleControl ::AmbientBackColor

Retourne la valeur de la propriété BackColor ambiante.

OLE_COLOR AmbientBackColor();

Valeur de retour

Valeur actuelle de la propriété BackColor ambiante du conteneur, le cas échéant. Si la propriété n’est pas prise en charge, cette fonction retourne la couleur d’arrière-plan Windows définie par le système.

Notes

La propriété BackColor ambiante est disponible pour tous les contrôles et est définie par le conteneur. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientDisplayName

Le nom que le conteneur a affecté au contrôle peut être utilisé dans les messages d’erreur affichés à l’utilisateur.

CString AmbientDisplayName();

Valeur de retour

Nom du contrôle OLE. La valeur par défaut est une chaîne de longueur nulle.

Notes

Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientFont

Retourne la valeur de la propriété Font ambiante.

LPFONTDISP AmbientFont();

Valeur de retour

Pointeur vers l’interface de distribution de police ambiante du conteneur. La valeur par défaut est NULL. Si le retour n’est pas égal à NULL, vous êtes responsable de la libération de la police en appelant sa fonction membre IUnknown ::Release .

Notes

La propriété Font ambiante est définie par le conteneur et disponible pour tous les contrôles. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientForeColor

Retourne la valeur de la propriété ForeColor ambiante.

OLE_COLOR AmbientForeColor();

Valeur de retour

Valeur actuelle de la propriété ForeColor ambiante du conteneur, le cas échéant. Si elle n’est pas prise en charge, cette fonction retourne la couleur de texte Windows définie par le système.

Notes

La propriété ForeColor ambiante est disponible pour tous les contrôles et est définie par le conteneur. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientLocaleID

Retourne l’ID de paramètres régionaux du conteneur.

LCID AmbientLocaleID();

Valeur de retour

Valeur de la propriété LocaleID du conteneur, le cas échéant. Si cette propriété n’est pas prise en charge, cette fonction retourne 0.

Notes

Le contrôle peut utiliser localeID pour adapter son interface utilisateur à des paramètres régionaux spécifiques. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientAppearance

Récupère le paramètre d’apparence actuel de l’objet de contrôle.

short AmbientAppearance();

Valeur de retour

Apparence du contrôle :

  • 0 Apparence plate

  • Apparence 3D

Notes

Appelez cette fonction pour récupérer la valeur actuelle de la propriété DISPID_AMBIENT_APPEARANCE pour le contrôle.

COleControl ::AmbientScaleUnits

Retourne le type d’unités utilisées par le conteneur.

CString AmbientScaleUnits();

Valeur de retour

Chaîne contenant les ScaleUnits ambiants du conteneur. Si cette propriété n’est pas prise en charge, cette fonction retourne une chaîne de longueur nulle.

Notes

La propriété ScaleUnits ambiante du conteneur peut être utilisée pour afficher des positions ou des dimensions, étiquetées avec l’unité choisie, telle que twips ou centimètres. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientShowGrabHandles

Détermine si le conteneur permet au contrôle d’afficher les poignées de saisie pour elle-même lorsqu’il est actif.

BOOL AmbientShowGrabHandles();

Valeur de retour

Non différent de zéro si les poignées de saisie doivent être affichées ; sinon 0. Si cette propriété n’est pas prise en charge, cette fonction retourne une valeur différente de zéro.

Notes

Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientShowHatching

Détermine si le conteneur permet au contrôle de s’afficher avec un modèle hachisé lorsque l’interface utilisateur est active.

BOOL AmbientShowHatching();

Valeur de retour

Différent de zéro si le modèle hachré doit être affiché ; sinon 0. Si cette propriété n’est pas prise en charge, cette fonction retourne une valeur différente de zéro.

Notes

Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientTextAlign

Détermine l’alignement du texte ambiant préféré par le conteneur de contrôle.

short AmbientTextAlign();

Valeur de retour

État de la propriété TextAlign ambiante du conteneur. Si cette propriété n’est pas prise en charge, cette fonction retourne 0.

Voici une liste de valeurs de retour valides :

Valeur retournée Signification
0 Alignement général (nombres à droite, texte à gauche).
1 Justification gauche
2 Centrer
3 Justification appropriée

Notes

Cette propriété est disponible pour tous les contrôles incorporés et est définie par le conteneur. Notez que le conteneur n’est pas requis pour prendre en charge cette propriété.

COleControl ::AmbientUIDead

Détermine si le conteneur souhaite que le contrôle réponde aux actions de l’interface utilisateur.

BOOL AmbientUIDead();

Valeur de retour

Différent de zéro si le contrôle doit répondre aux actions de l’interface utilisateur ; sinon 0. Si cette propriété n’est pas prise en charge, cette fonction retourne 0.

Notes

Par exemple, un conteneur peut définir cette valeur sur TRUE en mode création.

COleControl ::AmbientUserMode

Détermine si le conteneur est en mode conception ou en mode utilisateur.

BOOL AmbientUserMode();

Valeur de retour

Différent de zéro si le conteneur est en mode utilisateur ; sinon 0 (en mode création). Si cette propriété n’est pas prise en charge, cette fonction retourne TRUE.

Notes

Par exemple, un conteneur peut définir cette valeur sur FALSE en mode création.

COleControl ::BoundPropertyChanged

Signale que la valeur de propriété liée a changé.

void BoundPropertyChanged(DISPID dispid);

Paramètres

dispid
ID de répartition d’une propriété liée du contrôle.

Notes

Cela doit être appelé chaque fois que la valeur de la propriété change, même dans les cas où la modification n’a pas été apportée par le biais de la méthode Set de propriété. Tenez particulièrement compte des propriétés liées mappées aux variables membres. À tout moment, BoundPropertyChanged une variable membre de ce type doit être appelée.

COleControl ::BoundPropertyRequestEdit

Demande l’autorisation de l’interface IPropertyNotifySink pour modifier une valeur de propriété liée fournie par le contrôle.

BOOL BoundPropertyRequestEdit(DISPID dispid);

Paramètres

dispid
ID de répartition d’une propriété liée du contrôle.

Valeur de retour

Différent de zéro si la modification est autorisée ; sinon 0. La valeur par défaut est différente de zéro.

Notes

Si l’autorisation est refusée, le contrôle ne doit pas laisser la valeur de la propriété changer. Pour ce faire, ignorez ou échouez l’action qui a tenté de modifier la valeur de la propriété.

COleControl ::ClientToParent

Convertit les coordonnées de pPoint en coordonnées parentes.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Paramètres

lprcBounds
Pointeur vers les limites du contrôle OLE dans le conteneur. Pas la zone cliente, mais la zone de l’ensemble du contrôle, y compris les bordures et les barres de défilement.

pPoint
Pointeur vers le point de zone client OLE à traduire en coordonnées du parent (conteneur).

Notes

Sur l’entrée pPoint est relatif à l’origine de la zone cliente du contrôle OLE (coin supérieur gauche de la zone cliente du contrôle). Sur la sortie pPoint est relatif à l’origine du parent (coin supérieur gauche du conteneur).

COleControl ::ClipCaretRect

Ajuste un rectangle de pointage s’il est entièrement ou partiellement couvert par des objets opaques qui se chevauchent.

BOOL ClipCaretRect(LPRECT lpRect);

Paramètres

lpRect
Lors de l’entrée, un pointeur vers une structure RECT qui contient la zone d’insertion à ajuster. En sortie, la zone de caret ajustée ou NULL si le rectangle de caret est complètement couvert.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Un caret est une ligne clignotante, un bloc ou une bitmap qui indique généralement où le texte ou les graphiques seront insérés.

Un objet sans fenêtre ne peut pas afficher en toute sécurité un caret sans vérifier d’abord si le caret est partiellement ou totalement masqué en chevauchant des objets. Afin de rendre cela possible, un objet peut utiliser ClipCaretRect pour obtenir le pointage ajusté (réduit) pour s’assurer qu’il s’adapte à la région de découpage.

Les objets qui créent un caret doivent soumettre le rectangle de caret à ClipCaretRect et utiliser le rectangle ajusté pour le point d’insertion. Si la carete est entièrement masquée, cette méthode retourne FALSE et le signe ne doit pas être affiché du tout dans ce cas.

COleControl ::COleControl

Construit un objet COleControl.

COleControl();

Notes

Cette fonction n’est normalement pas appelée directement. Au lieu de cela, le contrôle OLE est généralement créé par sa fabrique de classe.

COleControl ::ControlInfoChanged

Appelez cette fonction lorsque l’ensemble de mnémoniques pris en charge par le contrôle a changé.

void ControlInfoChanged();

Notes

Lors de la réception de cette notification, le conteneur du contrôle obtient le nouvel ensemble de mnemoniques en effectuant un appel à IOleControl ::GetControlInfo. Notez que le conteneur n’est pas requis pour répondre à cette notification.

COleControl ::D isplayError

Appelé par l’infrastructure après que l’événement d’erreur de stock a été géré (sauf si le gestionnaire d’événements a supprimé l’affichage de l’erreur).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Paramètres

scode
Valeur du code d’état à signaler. Pour obtenir la liste complète des codes possibles, consultez l’article Contrôles ActiveX : Rubriques avancées.

lpszDescription
Description de l’erreur signalée.

lpszSource
Nom du module générant l’erreur (généralement, le nom du module de contrôle OLE).

lpszHelpFile
Nom du fichier d’aide contenant une description de l’erreur.

nHelpID
ID de contexte d’aide de l’erreur signalée.

Notes

Le comportement par défaut affiche une boîte de message contenant la description de l’erreur, contenue dans lpszDescription.

Remplacez cette fonction pour personnaliser l’affichage des erreurs.

COleControl ::D oClick

Simule une action de clic de souris sur le contrôle.

void DoClick();

Notes

La fonction membre substituable COleControl::OnClick est appelée, et un événement Stock Click est déclenché, s’il est pris en charge par le contrôle.

Cette fonction est prise en charge par la COleControl classe de base en tant que méthode stock, appelée DoClick. Pour plus d’informations, consultez l’article Contrôles ActiveX : Méthodes.

COleControl ::D oPropExchange

Appelé par l’infrastructure lors du chargement ou du stockage d’un contrôle à partir d’une représentation de stockage persistante, tel qu’un flux ou un jeu de propriétés.

virtual void DoPropExchange(CPropExchange* pPX);

Paramètres

pPX
Pointeur vers un objet CPropExchange. Le framework fournit cet objet pour établir le contexte de l’échange de propriétés, y compris sa direction.

Notes

Cette fonction effectue normalement des appels à la famille de fonctions PX_ pour charger ou stocker des propriétés définies par l’utilisateur spécifiques d’un contrôle OLE.

Si l’Assistant Contrôle a été utilisé pour créer le projet de contrôle OLE, la version substituée de cette fonction sérialise les propriétés stock prises en charge par COleControl un appel à la fonction de classe de base. COleControl::DoPropExchange Lorsque vous ajoutez des propriétés définies par l’utilisateur à votre contrôle OLE, vous devez modifier cette fonction pour sérialiser vos nouvelles propriétés. Pour plus d’informations sur la sérialisation, consultez l’article Contrôles ActiveX : Sérialisation.

COleControl ::D oSuperclassPaint

Redessine un contrôle OLE qui a été sous-classé à partir d’un contrôle Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Paramètres

pDC
Pointeur vers le contexte de l’appareil du conteneur de contrôle.

rcBounds
Zone dans laquelle le contrôle doit être dessiné.

Notes

Appelez cette fonction pour gérer correctement la peinture d’un contrôle OLE non actif. Cette fonction ne doit être utilisée que si le contrôle OLE sous-classe un contrôle Windows et doit être appelé dans la OnDraw fonction de votre contrôle.

Pour plus d’informations sur cette fonction et la sous-classe d’un contrôle Windows, consultez l’article Contrôles ActiveX : Sous-classe d’un contrôle Windows.

COleControl ::D rawContent

Appelé par l’infrastructure lorsque l’apparence du contrôle doit être mise à jour.

void DrawContent(
    CDC* pDC,
    CRect& rc);

Paramètres

pDC
Pointeur vers le contexte de l’appareil.

Rc
Zone rectangulaire à dessiner.

Notes

Cette fonction appelle directement la fonction substituable OnDraw .

COleControl ::D rawMetafile

Appelé par l’infrastructure lorsque le contexte d’appareil de métafichier est utilisé.

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Paramètres

pDC
Pointeur vers le contexte de l’appareil de métafichier.

Rc
Zone rectangulaire à dessiner.

COleControl ::EnableSimpleFrame

Active la caractéristique d’image simple d’un contrôle OLE.

void EnableSimpleFrame();

Notes

Cette caractéristique permet à un contrôle de prendre en charge l’endiguement visuel d’autres contrôles, mais pas le véritable confinement OLE. Par exemple, il s’agit d’une zone de groupe avec plusieurs contrôles à l’intérieur. Ces contrôles ne sont pas contenus dans OLE, mais ils se trouvent dans la même zone de groupe.

COleControl ::ExchangeExtent

Sérialise ou initialise l’état de l’étendue du contrôle (ses dimensions dans les unités HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Paramètres

pPX
Pointeur vers un objet CPropExchange . Le framework fournit cet objet pour établir le contexte de l’échange de propriétés, y compris sa direction.

Valeur de retour

Différent de zéro si la fonction a réussi ; Sinon, 0.

Notes

Cette fonction est normalement appelée par l’implémentation par défaut de COleControl::DoPropExchange.

COleControl ::ExchangeStockProps

Sérialise ou initialise l’état des propriétés de stock du contrôle.

void ExchangeStockProps(CPropExchange* pPX);

Paramètres

pPX
Pointeur vers un objet CPropExchange . Le framework fournit cet objet pour établir le contexte de l’échange de propriétés, y compris sa direction.

Notes

Cette fonction est normalement appelée par l’implémentation par défaut de COleControl::DoPropExchange.

COleControl ::ExchangeVersion

Sérialise ou initialise l’état des informations de version d’un contrôle.

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Paramètres

pPX
Pointeur vers un objet CPropExchange. Le framework fournit cet objet pour établir le contexte de l’échange de propriétés, y compris sa direction.

dwVersionDefault
Numéro de version actuel du contrôle.

bConvert
Indique si les données persistantes doivent être converties au format le plus récent lors de l’enregistrement ou conservées dans le même format que celui chargé.

Valeur de retour

Non différent de zéro de la fonction réussie ; Sinon, 0.

Notes

En règle générale, il s’agit de la première fonction appelée par le remplacement d’un COleControl::DoPropExchangecontrôle . Lors du chargement, cette fonction lit le numéro de version des données persistantes et définit l’attribut de version de l’objet CPropExchange en conséquence. Lors de l’enregistrement, cette fonction écrit le numéro de version des données persistantes.

Pour plus d’informations sur la persistance et le contrôle de version, consultez l’article Contrôles ActiveX : Sérialisation.

COleControl ::FireClick

Appelé par l’infrastructure lorsque la souris est cliquée sur un contrôle actif.

void FireClick();

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement Click se produise, le mappage d’événements du contrôle doit avoir un événement Stock Click défini.

COleControl ::FireDblClick

Appelé par l’infrastructure lorsque la souris est double-cliquée sur un contrôle actif.

void FireDblClick();

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement DblClick se produise, le mappage d’événements du contrôle doit avoir un événement DblClick boursier défini.

COleControl ::FireError

Déclenche l’événement d’erreur du stock.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Paramètres

scode
Valeur du code d’état à signaler. Pour obtenir la liste complète des codes possibles, consultez l’article Contrôles ActiveX : Rubriques avancées.

lpszDescription
Description de l’erreur signalée.

nHelpID
ID d’aide de l’erreur signalée.

Notes

Cet événement permet de signaler, à des endroits appropriés dans votre code, qu’une erreur s’est produite dans votre contrôle. Contrairement à d’autres événements boursiers, tels que Click ou MouseMove, l’erreur n’est jamais déclenchée par l’infrastructure.

Pour signaler une erreur qui se produit lors d’une fonction get de propriété, d’une fonction de jeu de propriétés ou d’une méthode Automation, appelez COleControl ::ThrowError.

L’implémentation de l’événement d’erreur stock d’un contrôle OLE utilise une valeur SCODE. Si votre contrôle utilise cet événement et est destiné à être utilisé dans Visual Basic 4.0, vous recevrez des erreurs, car la valeur SCODE n’est pas prise en charge dans Visual Basic.

Pour résoudre ce problème, modifiez manuellement le paramètre SCODE dans le contrôle. Fichier ODL dans un longfichier . En outre, tout événement, méthode ou propriété personnalisé qui utilise un paramètre SCODE provoque également le même problème.

COleControl ::FireEvent

Déclenche un événement défini par l’utilisateur à partir de votre contrôle avec un nombre quelconque d’arguments facultatifs.

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Paramètres

dispid
ID de répartition de l’événement à déclencher.

pbParams
Descripteur pour les types de paramètres de l’événement.

Notes

En règle générale, cette fonction ne doit pas être appelée directement. Au lieu de cela, vous allez appeler les fonctions de déclenchement d’événements dans la section de carte d’événements de la déclaration de classe de votre contrôle.

L’argument pbParams est une liste séparée par des espaces de VTS_. Une ou plusieurs de ces valeurs, séparées par des espaces (et non par des virgules), spécifient la liste des paramètres de la fonction. Les valeurs possibles sont les suivantes :

Symbole Type de paramètre
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Remarque

Des constantes variant supplémentaires ont été définies pour tous les types de variantes, à l’exception de VTS_FONT et de VTS_PICTURE, qui fournissent un pointeur vers la constante de données variant. Ces constantes sont nommées à l’aide de la convention VTS_P<CONSTANT-NAME> . Par exemple, VTS_PCOLOR est un pointeur vers une constante VTS_COLOR.

COleControl ::FireKeyDown

Appelé par l’infrastructure lorsqu’une touche est enfoncée pendant que l’interface utilisateur du contrôle est active.

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Paramètres

pnChar
Pointeur vers la valeur de code de clé virtuelle de la touche enfoncée. Pour obtenir la liste des codes de clé virtuelle standard, consultez Winuser.h

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement KeyDown se produise, le mappage d’événements du contrôle doit avoir un événement KeyDown boursier défini.

COleControl ::FireKeyPress

Appelé par l’infrastructure lorsqu’une touche est enfoncée et libérée pendant que le contrôle personnalisé est actif dans le conteneur.

void FireKeyPress(USHORT* pnChar);

Paramètres

pnChar
Pointeur vers la valeur de caractère de la touche enfoncée.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Le destinataire de l’événement peut modifier pnChar, par exemple, convertir tous les caractères minuscules en majuscules. Si vous souhaitez examiner le caractère modifié, remplacez OnKeyPressEvent.

Pour que le déclenchement automatique d’un événement KeyPress se produise, le mappage d’événements du contrôle doit avoir un événement KeyPress boursier défini.

COleControl ::FireKeyUp

Appelé par l’infrastructure lorsqu’une clé est libérée pendant que le contrôle personnalisé est actif dans le conteneur.

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Paramètres

pnChar
Pointeur vers la valeur de code de clé virtuelle de la clé libérée. Pour obtenir la liste des codes de clé virtuelle standard, consultez Winuser.h

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement KeyUp se produise, le mappage d’événements du contrôle doit avoir un événement KeyUp boursier défini.

COleControl ::FireMouseDown

Appelé par l’infrastructure lorsqu’un bouton de la souris est enfoncé sur un contrôle personnalisé actif.

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Paramètres

nButton
Valeur numérique du bouton de la souris enfoncée. Il peut contenir l’une des valeurs suivantes :

  • LEFT_BUTTON Le bouton gauche de la souris a été enfoncé.

  • MIDDLE_BUTTON Le bouton central de la souris a été enfoncé.

  • RIGHT_BUTTON Le bouton droit de la souris a été enfoncé.

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

x
Coordonnée x du curseur lorsqu’un bouton de la souris a été enfoncé. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

y
Coordonnée y du curseur lorsqu’un bouton de la souris a été enfoncé. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement MouseDown se produise, le mappage d’événements du contrôle doit avoir un événement MouseDown en stock défini.

COleControl ::FireMouseMove

Appelé par l’infrastructure lorsque le curseur est déplacé sur un contrôle personnalisé actif.

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Paramètres

nButton
Valeur numérique des boutons de la souris enfoncés. Contient une combinaison des valeurs suivantes :

  • LEFT_BUTTON Le bouton gauche de la souris a été enfoncé pendant l’action.

  • MIDDLE_BUTTON Le bouton central de la souris a été enfoncé pendant l’action.

  • RIGHT_BUTTON Le bouton droit de la souris a été enfoncé pendant l’action.

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

x
Coordonnée x du curseur. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

y
Coordonnée y du curseur. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement MouseMove se produise, le mappage d’événements du contrôle doit avoir un événement MouseMove en stock défini.

COleControl ::FireMouseUp

Appelé par l’infrastructure lorsqu’un bouton de souris est libéré sur un contrôle personnalisé actif.

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Paramètres

nButton
Valeur numérique du bouton de la souris relâchée. Il peut avoir l’une des valeurs suivantes :

  • LEFT_BUTTON Le bouton gauche de la souris a été libéré.

  • MIDDLE_BUTTON Le bouton central de la souris a été libéré.

  • RIGHT_BUTTON Le bouton droit de la souris a été libéré.

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

x
Coordonnée x du curseur lorsqu’un bouton de la souris a été libéré. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

y
Coordonnée y d’un curseur lorsqu’un bouton de la souris a été libéré. La coordonnée est relative au coin supérieur gauche de la fenêtre de contrôle.

Notes

Si cet événement est défini comme un événement personnalisé, vous déterminez quand l’événement est déclenché.

Pour que le déclenchement automatique d’un événement MouseUp se produise, le mappage d’événements du contrôle doit avoir un événement MouseUp stock défini.

COleControl ::FireReadyStateChange

Déclenche un événement avec la valeur actuelle de l’état prêt du contrôle.

void FireReadyStateChange();

Notes

L’état prêt peut être l’une des valeurs suivantes :

Nom Description
READYSTATE_UNINITIALIZED État d’initialisation par défaut
READYSTATE_LOADING Le contrôle charge actuellement ses propriétés
READYSTATE_LOADED Le contrôle a été initialisé
READYSTATE_INTERACTIVE Le contrôle a suffisamment de données pour être interactives, mais toutes les données asynchrones ne sont pas encore chargées
READYSTATE_COMPLETE Le contrôle a toutes ses données

Utilisez GetReadyState pour déterminer la préparation actuelle du contrôle.

InternalSetReadyState modifie l’état prêt pour la valeur fournie, puis appelle FireReadyStateChange.

COleControl ::GetActivationPolicy

Modifie le comportement d’activation par défaut d’un contrôle qui prend en charge l’interface IPointerInactive .

virtual DWORD GetActivationPolicy();

Valeur de retour

Combinaison d’indicateurs de l’énumération POINTERINACTIVE. Les indicateurs possibles sont les suivants :

Nom Description
POINTERINACTIVE_ACTIVATEONENTRY L’objet doit être activé sur place lorsque la souris l’entre pendant une opération de déplacement de la souris.
POINTERINACTIVE_DEACTIVATEONLEAVE L’objet doit être désactivé lorsque la souris quitte l’objet pendant une opération de déplacement de la souris.
POINTERINACTIVE_ACTIVATEONDRAG L’objet doit être activé sur place lorsque la souris est déplacée sur celle-ci pendant une opération de glisser-déplacer.

Notes

Lorsque l’interface IPointerInactive est activée, le conteneur délègue WM_SETCURSOR et WM_MOUSEMOVE messages à celui-ci. COleControlL’implémentation de cette interface distribue ces messages via la carte des messages de votre contrôle, après avoir ajusté les coordonnées de la souris de manière appropriée.

Chaque fois que le conteneur reçoit un message WM_SETCURSOR ou WM_MOUSEMOVE avec le pointeur de la souris sur un objet inactif prenant en charge IPointerInactive, il doit appeler GetActivationPolicy l’interface et retourner des indicateurs de l’énumération POINTERINACTIVE.

Vous pouvez traiter ces messages comme les messages de fenêtre ordinaires, en ajoutant les entrées correspondantes à la carte des messages. Dans vos gestionnaires, évitez d’utiliser la m_hWnd variable membre (ou toute fonction membre qui l’utilise) sans vérifier d’abord que sa valeur n’est pas NULL.

Tout objet destiné à faire plus que définir le curseur de la souris et/ou déclencher un événement de déplacement de souris, tel que donner des commentaires visuels spéciaux, doit retourner l’indicateur POINTERINACTIVE_ACTIVATEONENTRY et dessiner les commentaires uniquement lorsqu’ils sont actifs. Si l’objet retourne cet indicateur, le conteneur doit l’activer immédiatement sur place, puis le transférer au même message qui a déclenché l’appel GetActivationPolicy.

Si les indicateurs POINTERINACTIVE_ACTIVATEONENTRY et POINTERINACTIVE_DEACTIVATEONLEAVE sont retournés, l’objet est activé uniquement lorsque la souris est sur l’objet. Si seul l’indicateur POINTERINACTIVE_ACTIVATEONENTRY est retourné, l’objet n’est activé qu’une seule fois lorsque la souris entre d’abord dans l’objet.

Vous souhaiterez peut-être également qu’un contrôle inactif soit la cible d’une opération de glisser-déplacer OLE. Cela nécessite l’activation du contrôle au moment où l’utilisateur fait glisser un objet dessus, afin que la fenêtre du contrôle puisse être inscrite en tant que cible de déplacement. Pour provoquer l’activation pendant un glisser-déplacer, retournez l’indicateur POINTERINACTIVE_ACTIVATEONDRAG :

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Les informations communiquées par GetActivationPolicy ne doivent pas être mises en cache par un conteneur. Au lieu de cela, cette méthode doit être appelée chaque fois que la souris entre dans un objet inactif.

Si un objet inactif ne demande pas d’être activé sur place lorsque la souris l’entre, son conteneur doit distribuer les messages suivants WM_SETCURSOR à cet objet en appelant OnInactiveSetCursor tant que le pointeur de la souris reste sur l’objet.

L’activation de l’interface IPointerInactive signifie généralement que vous souhaitez que le contrôle soit capable de traiter les messages de souris à tout moment. Pour obtenir ce comportement dans un conteneur qui ne prend pas en charge l’interface IPointerInactive , vous devez toujours activer votre contrôle lorsqu’il est visible, ce qui signifie que le contrôle doit avoir l’indicateur OLEMISC_ACTIVATEWHENVISIBLE parmi ses différents indicateurs. Toutefois, pour empêcher que cet indicateur prenne effet dans un conteneur prenant en charge IPointerInactive, vous pouvez également spécifier l’indicateur OLEMISC_IGNOREACTIVATEWHENVISIBLE :

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl ::GetAmbientProperty

Obtient la valeur d’une propriété ambiante du conteneur.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Paramètres

dwDispid
ID de répartition de la propriété ambiante souhaitée.

vtProp
Balise de type variant qui spécifie le type de la valeur à retourner dans pvProp.

pvProp
Pointeur vers l’adresse de la variable qui recevra la valeur de propriété ou la valeur de retour. Le type réel de ce pointeur doit correspondre au type spécifié par vtProp.

vtProp Type de pvProp
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

Valeur de retour

Différent de zéro si la propriété ambiante est prise en charge ; sinon 0.

Notes

Si vous utilisez GetAmbientProperty pour récupérer les propriétés DisplayName et ScaleUnits ambiantes, définissez vtProp sur VT_BSTR et pvProp sur CString*. Si vous récupérez la propriété Font ambiante, définissez vtProp sur VT_FONT et pvProp sur LPFONTDISP*.

Notez que les fonctions ont déjà été fournies pour les propriétés ambiantes courantes, telles que AmbientBackColor et AmbientFont.

COleControl ::GetAppearance

Implémente la fonction Get de la propriété d’apparence de votre contrôle.

short GetAppearance ();

Valeur de retour

La valeur de retour spécifie le paramètre d’apparence actuel sous la forme d’une short valeur (VT_I2), si elle réussit. Cette valeur est égale à zéro si l’apparence du contrôle est plate et 1 si l’apparence du contrôle est 3D.

COleControl ::GetBackColor

Implémente la fonction Get de la propriété BackColor stock de votre contrôle.

OLE_COLOR GetBackColor();

Valeur de retour

La valeur de retour spécifie la couleur d’arrière-plan actuelle en tant que valeur OLE_COLOR, si elle réussit. Cette valeur peut être traduite en valeur COLORREF avec un appel à TranslateColor.

COleControl ::GetBorderStyle

Implémente la fonction Get de la propriété BorderStyle de votre contrôle.

short GetBorderStyle();

Valeur de retour

1 si le contrôle a une bordure normale ; 0 si le contrôle n’a pas de bordure.

COleControl ::GetCapture

Détermine si l’objet COleControl a la capture de la souris.

CWnd* GetCapture();

Valeur de retour

Si le contrôle est activé et sans fenêtre, retourne this si le contrôle dispose actuellement de la capture de la souris (tel que déterminé par le conteneur du contrôle), ou NULL s’il n’a pas la capture.

Sinon, retourne l’objet CWnd qui a la capture de la souris (identique à CWnd::GetCapture).

Notes

Un contrôle sans fenêtre activé reçoit la capture de la souris lorsque SetCapture est appelé.

COleControl ::GetClassID

Appelé par l’infrastructure pour récupérer l’ID de classe OLE du contrôle.

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Paramètres

pclsid
Pointeur vers l’emplacement de l’ID de classe.

Valeur de retour

Différent de zéro si l’appel n’a pas réussi ; sinon 0.

Notes

Généralement implémenté par le IMPLEMENT_OLECREATE_EX.

COleControl ::GetClientOffset

Récupère la différence entre le coin supérieur gauche de la zone rectangulaire du contrôle et le coin supérieur gauche de sa zone cliente.

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Paramètres

pdxOffset
Pointeur vers le décalage horizontal de la zone cliente du contrôle OLE.

pdyOffset
Pointeur vers le décalage vertical de la zone cliente du contrôle OLE.

Notes

Le contrôle OLE a une zone rectangulaire au sein de son conteneur. La zone cliente du contrôle est la zone de contrôle à l’exclusion des bordures et des barres de défilement. Le décalage récupéré par GetClientOffset est la différence entre le coin supérieur gauche de la zone rectangulaire du contrôle et le coin supérieur gauche de sa zone cliente. Si votre contrôle a des éléments non clients autres que les bordures standard et les barres de défilement, remplacez cette fonction membre pour spécifier le décalage.

COleControl ::GetClientRect

Récupère la taille de la zone cliente du contrôle.

virtual void GetClientRect(LPRECT lpRect) const;

Paramètres

lpRect
Pointeur vers une RECT structure contenant les dimensions de la zone cliente du contrôle sans fenêtre ; autrement dit, la taille du contrôle moins les bordures de fenêtre, les cadres, les barres de défilement, et ainsi de suite. Le paramètre lpRect indique la taille du rectangle client du contrôle, et non sa position.

COleControl ::GetClientSite

Interroge un objet pour le pointeur vers son site client actuel dans son conteneur.

LPOLECLIENTSITE GetClientSite();

Valeur de retour

Pointeur vers le site client actuel du contrôle dans son conteneur.

Notes

Le pointeur retourné pointe vers une instance de IOleClientSite. L’interface IOleClientSite , implémentée par des conteneurs, est la vue de l’objet de son contexte : où il est ancré dans le document, où il obtient son stockage, son interface utilisateur et d’autres ressources.

COleControl ::GetControlFlags

Récupère les paramètres de l’indicateur de contrôle.

virtual DWORD GetControlFlags();

Valeur de retour

Combinaison ORed des indicateurs dans l’énumération ControlFlags :

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Notes

Par défaut, GetControlFlags retourne fastBeginPaint | clipPaintDC.

Nom Description
fastBeginPaint Si elle est définie, utilise une fonction begin-paint personnalisée pour les contrôles OLE au lieu de l’API BeginPaint (définie par défaut).
clipPaintDC S’il n’est pas défini, désactive l’appel effectué IntersectClipRect COleControl et bénéficie d’un petit avantage de vitesse. Si vous utilisez l’activation sans fenêtre, l’indicateur n’a aucun effet.
pointerInactive Si elle est définie, fournit une interaction de la souris pendant que votre contrôle est inactif en activant COleControll’implémentation de l’interface IPointerInactive , qui est désactivée par défaut.
noFlickerActivate Si elle est définie, élimine les opérations de dessin supplémentaires et le scintillement visuel associé. Utilisez quand votre contrôle se dessine de façon identique dans les états inactifs et actifs. Si vous utilisez l’activation sans fenêtre, l’indicateur n’a aucun effet.
windowlessActivate Si cette option est définie, indique que votre contrôle utilise l’activation sans fenêtre.
canOptimizeDraw Si elle est définie, indique que le contrôle effectue un dessin optimisé, si le conteneur le prend en charge.

Pour plus d’informations sur GetControlFlags les contrôles OLE et d’autres optimisations, consultez Contrôles ActiveX : Optimisation.

COleControl ::GetControlSize

Récupère la taille de la fenêtre de contrôle OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Paramètres

pcx
Spécifie la largeur du contrôle en pixels.

pcy
Spécifie la hauteur du contrôle en pixels.

Notes

Notez que toutes les coordonnées des fenêtres de contrôle sont relatives au coin supérieur gauche du contrôle.

COleControl ::GetDC

Fournit un objet sans fenêtre pour obtenir un contexte d’appareil d’écran (ou compatible) à partir de son conteneur.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Paramètres

lprcRect
Pointeur vers le rectangle que le contrôle sans fenêtre souhaite redessiner, dans les coordonnées clientes du contrôle. NULL signifie que l’étendue de l’objet complet.

dwFlags
Attributs de dessin du contexte de l’appareil. Les choix sont les suivants :

  • OLEDC_NODRAW Indique que l’objet n’utilise pas le contexte de l’appareil pour effectuer un dessin, mais simplement pour obtenir des informations sur l’appareil d’affichage. Le conteneur doit simplement passer le contrôleur de domaine de la fenêtre sans traitement supplémentaire.

  • OLEDC_PAINTBKGND Demande que le conteneur peint l’arrière-plan avant de retourner le contrôleur de domaine. Un objet doit utiliser cet indicateur s’il demande un contrôleur de domaine pour redessiner une zone avec un arrière-plan transparent.

  • OLEDC_OFFSCREEN informe le conteneur que l’objet souhaite afficher dans une bitmap hors écran qui doit ensuite être copiée à l’écran. Un objet doit utiliser cet indicateur lorsque l’opération de dessin qu’il est sur le point d’effectuer génère beaucoup de scintillement. Le conteneur est libre d’honorer cette demande ou non. Toutefois, si cet indicateur n’est pas défini, le conteneur doit remettre un contrôleur de domaine à l’écran. Cela permet aux objets d’effectuer des opérations d’écran directes, telles que l’affichage d’une sélection (via une opération XOR ).

Valeur de retour

Pointeur vers le contexte de l’appareil d’affichage de la zone cliente conteneur CWnd si elle réussit ; sinon, la valeur de retour est NULL. Le contexte de l’appareil d’affichage peut être utilisé dans les fonctions GDI suivantes pour dessiner dans la zone cliente de la fenêtre du conteneur.

Notes

La fonction membre ReleaseDC doit être appelée pour libérer le contexte après la peinture. Lors de l’appel GetDC, les objets passent le rectangle dans lequel ils souhaitent dessiner dans leurs propres coordonnées clientes. GetDC les traduit en coordonnées de la zone cliente de conteneur. L’objet ne doit pas demander un rectangle de dessin souhaité plus grand que son propre rectangle de zone cliente, dont la taille peut être récupérée avec GetClientRect. Cela empêche les objets de dessiner par inadvertance où ils ne sont pas censés.

COleControl ::GetEnabled

Implémente la fonction Get de la propriété Active de votre contrôle.

BOOL GetEnabled();

Valeur de retour

Différent de zéro si le contrôle est activé ; sinon 0.

COleControl ::GetExtendedControl

Obtient un pointeur vers un objet géré par le conteneur qui représente le contrôle avec un ensemble étendu de propriétés.

LPDISPATCH GetExtendedControl();

Valeur de retour

Pointeur vers l’objet de contrôle étendu du conteneur. S’il n’existe aucun objet disponible, la valeur est NULL.

Cet objet peut être manipulé via son IDispatch interface. Vous pouvez également utiliser QueryInterface pour obtenir d’autres interfaces disponibles fournies par l’objet. Toutefois, l’objet n’est pas nécessaire pour prendre en charge un ensemble spécifique d’interfaces. Notez que l’utilisation des fonctionnalités spécifiques de l’objet de contrôle étendu d’un conteneur limite la portabilité de votre contrôle à d’autres conteneurs arbitraires.

Notes

La fonction qui appelle cette fonction est chargée de libérer le pointeur lorsqu’elle est terminée avec l’objet. Notez que le conteneur n’est pas requis pour prendre en charge cet objet.

COleControl ::GetFocus

Détermine si l’objet COleControl a le focus.

CWnd* GetFocus();

Valeur de retour

Si le contrôle est activé et sans fenêtre, retourne this si le contrôle a actuellement le focus clavier (tel que déterminé par le conteneur du contrôle) ou NULL s’il n’a pas le focus.

Sinon, retourne l’objet CWnd qui a le focus (identique à CWnd::GetFocus).

Notes

Un contrôle sans fenêtre activé reçoit le focus lorsque SetFocus est appelé.

COleControl ::GetFont

Implémente la fonction Get de la propriété Font stock.

LPFONTDISP GetFont();

Valeur de retour

Pointeur vers l’interface de répartition de police de la propriété Font stock du contrôle.

Notes

Notez que l’appelant doit libérer l’objet une fois terminé. Dans l’implémentation du contrôle, utilisez-le InternalGetFont pour accéder à l’objet Font stock du contrôle. Pour plus d’informations sur l’utilisation de polices dans votre contrôle, consultez l’article Contrôles ActiveX : Utilisation de polices dans un contrôle ActiveX.

COleControl ::GetFontTextMetrics

Mesure les métriques de texte pour tout CFontHolder objet appartenant au contrôle.

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Paramètres

lptm
Pointeur vers une structure TEXTMETRIC .

fontHolder
Référence à un objet CFontHolder .

Notes

Une telle police peut être sélectionnée avec la fonction COleControl ::SelectFontObject . GetFontTextMetrics initialise la TEXTMETRIC structure pointée par lptm avec des informations de métriques valides sur fontHolderla police si elle réussit, ou remplit la structure avec des zéros s’il n’a pas réussi. Vous devez utiliser cette fonction au lieu de GetTextMetrics lors de la peinture de votre contrôle, car des contrôles, comme n’importe quel objet OLE incorporé, peuvent être nécessaires pour se rendre dans un métafichier.

La TEXTMETRIC structure de la police par défaut est actualisée lorsque la fonction SelectFontObject est appelée. Vous devez appeler GetFontTextMetrics uniquement après avoir sélectionné la propriété Font stock pour vous assurer que les informations fournies sont valides.

COleControl ::GetForeColor

Implémente la fonction Get de la propriété ForeColor stock.

OLE_COLOR GetForeColor();

Valeur de retour

La valeur de retour spécifie la couleur de premier plan actuelle en tant que valeur OLE_COLOR, si elle réussit. Cette valeur peut être traduite en valeur COLORREF avec un appel à TranslateColor.

COleControl ::GetHwnd

Implémente la fonction Get de la propriété hWnd stock.

OLE_HANDLE GetHwnd();

Valeur de retour

Handle de fenêtre du contrôle OLE, le cas échéant ; sinon NULL.

COleControl ::GetMessageString

Appelé par l’infrastructure pour obtenir une chaîne courte qui décrit l’objectif de l’élément de menu identifié par nID.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Paramètres

nID
ID d’élément de menu.

rMessage
Référence à un objet CString par le biais duquel une chaîne sera retournée.

Notes

Cela peut être utilisé pour obtenir un message à afficher dans une barre d’état pendant que l’élément de menu est mis en surbrillance. L’implémentation par défaut tente de charger une ressource de chaîne identifiée par nID.

COleControl ::GetNotSupported

Empêche l’accès à la valeur de propriété d’un contrôle par l’utilisateur.

void GetNotSupported();

Notes

Appelez cette fonction à la place de la fonction Get de toute propriété où la récupération de la propriété par l’utilisateur du contrôle n’est pas prise en charge. Par exemple, il s’agit d’une propriété qui est en écriture seule.

COleControl ::GetReadyState

Retourne l’état de préparation du contrôle.

long GetReadyState();

Valeur de retour

État de préparation du contrôle, l’une des valeurs suivantes :

Nom Description
READYSTATE_UNINITIALIZED État d’initialisation par défaut
READYSTATE_LOADING Le contrôle charge actuellement ses propriétés
READYSTATE_LOADED Le contrôle a été initialisé
READYSTATE_INTERACTIVE Le contrôle a suffisamment de données pour être interactives, mais toutes les données asynchrones ne sont pas encore chargées
READYSTATE_COMPLETE Le contrôle a toutes ses données

Notes

Les contrôles les plus simples n’ont jamais besoin de faire la distinction entre LOADED et INTERACTIVE. Toutefois, les contrôles qui prennent en charge les propriétés de chemin d’accès aux données peuvent ne pas être interactifs tant qu’au moins certaines données ne sont pas reçues de manière asynchrone. Un contrôle doit tenter de devenir interactif dès que possible.

COleControl ::GetRectInContainer

Obtient les coordonnées du rectangle du contrôle par rapport au conteneur, exprimées en unités d’appareil.

BOOL GetRectInContainer(LPRECT lpRect);

Paramètres

lpRect
Pointeur vers la structure de rectangle dans laquelle les coordonnées du contrôle seront copiées.

Valeur de retour

Différent de zéro si le contrôle est actif sur place ; sinon 0.

Notes

Le rectangle est valide uniquement si le contrôle est actif sur place.

COleControl ::GetStockTextMetrics

Mesure les métriques de texte de la propriété Font stock du contrôle, qui peuvent être sélectionnées avec la fonction SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Paramètres

lptm
Pointeur vers une structure TEXTMETRIC .

Notes

La GetStockTextMetrics fonction initialise la TEXTMETRIC structure pointée par lptm avec des informations de métriques valides si elle réussit, ou remplit la structure avec des zéros s’il n’a pas réussi. Utilisez cette fonction au lieu de GetTextMetrics lors de la peinture de votre contrôle, car des contrôles, comme n’importe quel objet OLE incorporé, peuvent être nécessaires pour se rendre dans un métafichier.

La TEXTMETRIC structure de la police par défaut est actualisée lorsque la SelectStockFont fonction est appelée. Vous devez appeler cette fonction uniquement après avoir sélectionné la police de stock pour garantir que les informations fournies sont valides.

COleControl ::GetText

Implémente la fonction Get de la propriété Text ou Caption stock.

BSTR GetText();

Valeur de retour

Valeur actuelle de la chaîne de texte du contrôle ou d’une chaîne de longueur nulle si aucune chaîne n’est présente.

Remarque

Pour plus d’informations sur le type de données BSTR, consultez la section Types de données dans la section Macros et Globals.

Notes

Notez que l’appelant de cette fonction doit appeler SysFreeString la chaîne retournée pour libérer la ressource. Dans l’implémentation du contrôle, utilisez InternalGetText cette option pour accéder à la propriété Texte ou Légende du contrôle.

COleControl ::GetWindowlessDropTarget

Remplacez GetWindowlessDropTarget quand vous souhaitez qu’un contrôle sans fenêtre soit la cible d’une opération de glisser-déplacer OLE.

virtual IDropTarget* GetWindowlessDropTarget();

Valeur de retour

Pointeur vers l’interface de l’objet IDropTarget . Étant donné qu’il n’a pas de fenêtre, un objet sans fenêtre ne peut pas inscrire une IDropTarget interface. Toutefois, pour participer au glisser-déplacer, un objet sans fenêtre peut toujours implémenter l’interface et le retourner dans GetWindowlessDropTarget.

Notes

Normalement, cela suppose que la fenêtre de contrôle soit stockée en tant que cible de déplacement. Toutefois, étant donné que le contrôle n’a pas de fenêtre propre, le conteneur utilise sa propre fenêtre comme cible de suppression. Le contrôle doit simplement fournir une implémentation de l’interface IDropTarget à laquelle le conteneur peut déléguer des appels au moment approprié. Par exemple :

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl ::InitializeIIDs

Informe la classe de base des IID que le contrôle utilisera.

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Paramètres

piidPrimary
Pointeur vers l’ID d’interface de l’interface de répartition principale du contrôle.

piidEvents
Pointeur vers l’ID d’interface de l’interface d’événement du contrôle.

Notes

Appelez cette fonction dans le constructeur du contrôle pour informer la classe de base des ID d’interface que votre contrôle utilisera.

COleControl ::InternalGetFont

Accède à la propriété Font stock de votre contrôle

CFontHolder& InternalGetFont();

Valeur de retour

Référence à un objet CFontHolder qui contient l’objet Font stock.

COleControl ::InternalGetText

Accède à la propriété Texte ou Légende boursier de votre contrôle.

const CString& InternalGetText();

Valeur de retour

Référence à la chaîne de texte du contrôle.

COleControl ::InternalSetReadyState

Définit l’état de préparation du contrôle.

void InternalSetReadyState(long lNewReadyState);

Paramètres

lNewReadyState
État de préparation à définir pour le contrôle, l’une des valeurs suivantes :

Nom Description
READYSTATE_UNINITIALIZED État d’initialisation par défaut
READYSTATE_LOADING Le contrôle charge actuellement ses propriétés
READYSTATE_LOADED Le contrôle a été initialisé
READYSTATE_INTERACTIVE Le contrôle a suffisamment de données pour être interactives, mais toutes les données asynchrones ne sont pas encore chargées
READYSTATE_COMPLETE Le contrôle a toutes ses données

Notes

Les contrôles les plus simples n’ont jamais besoin de faire la distinction entre LOADED et INTERACTIVE. Toutefois, les contrôles qui prennent en charge les propriétés de chemin d’accès aux données peuvent ne pas être interactifs tant qu’au moins certaines données ne sont pas reçues de manière asynchrone. Un contrôle doit tenter de devenir interactif dès que possible.

COleControl ::InvalidateControl

Force le contrôle à redessiner lui-même.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Paramètres

lpRect
Pointeur vers la région du contrôle à invalider.

bErase
Spécifie si l’arrière-plan de la région de mise à jour doit être effacé lorsque la région de mise à jour est traitée.

Notes

Si lpRect a une valeur NULL, l’intégralité du contrôle sera redessinée. Si lpRect n’est pas NULL, cela indique la partie du rectangle du contrôle à invalider. Dans les cas où le contrôle n’a pas de fenêtre ou n’est actuellement pas actif, le rectangle est ignoré et un appel est effectué à la fonction membre IAdviseSink ::OnViewChange du site client. Utilisez cette fonction au lieu de CWnd::InvalidateRect ou InvalidateRect.

COleControl ::InvalidateRgn

Invalide la zone cliente de la fenêtre de conteneur dans la région donnée.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Paramètres

pRgn
Pointeur vers un objet CRgn qui identifie la région d’affichage de l’objet OLE à invalider, dans les coordonnées clientes de la fenêtre conteneur. Si ce paramètre a la valeur NULL, l’étendue est l’objet entier.

bErase
Spécifie si l’arrière-plan de la région invalidée doit être effacé. Si la valeur est TRUE, l’arrière-plan est effacé. Si la valeur est FALSE, l’arrière-plan reste inchangé.

Notes

Cela peut être utilisé pour redessiner des contrôles sans fenêtre dans le conteneur. La région invalidée, ainsi que toutes les autres zones de la région de mise à jour, est marquée pour la peinture lorsque le message de WM_PAINT suivant est envoyé.

Si bErase a la valeur TRUE pour une partie de la région de mise à jour, l’arrière-plan de la région entière, et non seulement dans la partie donnée, est effacé.

COleControl ::IsConvertingVBX

Autorise le chargement spécialisé d’un contrôle OLE.

BOOL IsConvertingVBX();

Valeur de retour

Différent de zéro si le contrôle est en cours de conversion ; sinon 0.

Notes

Lors de la conversion d’un formulaire qui utilise des contrôles VBX en un qui utilise des contrôles OLE, un code de chargement spécial pour les contrôles OLE peut être nécessaire. Par exemple, si vous chargez une instance de votre contrôle OLE, vous pouvez avoir un appel à PX_Font dans votre DoPropExchange:

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Toutefois, les contrôles VBX n’ont pas d’objet Font ; chaque propriété de police a été enregistrée individuellement. Dans ce cas, vous devez faire IsConvertingVBX la distinction entre ces deux cas :

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Un autre cas serait si votre contrôle VBX a enregistré des données binaires propriétaires (dans son gestionnaire de messages VBM_SAVEPROPERTY), et votre contrôle OLE enregistre ses données binaires dans un autre format. Si vous souhaitez que votre contrôle OLE soit compatible avec le contrôle VBX, vous pouvez lire les anciens et nouveaux formats à l’aide de la IsConvertingVBX fonction en déterminant si le contrôle VBX ou le contrôle OLE a été chargé.

Dans la fonction de DoPropExchange votre contrôle, vous pouvez rechercher cette condition et, si la valeur est true, exécutez le code de chargement spécifique à cette conversion (par exemple, les exemples précédents). Si le contrôle n’est pas converti, vous pouvez exécuter du code de chargement normal. Cette capacité s’applique uniquement aux contrôles convertis à partir de équivalents VBX.

COleControl ::IsInvokeAllowed

Active l’appel de méthode Automation.

BOOL IsInvokeAllowed(DISPID dispid);

Valeur de retour

Différent de zéro si le contrôle a été initialisé ; sinon 0.

Notes

L’implémentation de l’infrastructure des IDispatch::Invoke appels IsInvokeAllowed pour déterminer si une fonction donnée (identifiée par dispid) peut être appelée. Le comportement par défaut d’un contrôle OLE consiste à autoriser les méthodes d’automatisation à appeler uniquement si le contrôle a été initialisé ; toutefois, IsInvokeAllowed est une fonction virtuelle et peut être remplacée si nécessaire (par exemple, lorsque le contrôle est utilisé en tant que serveur Automation).

COleControl ::IsModified

Détermine si l’état du contrôle a été modifié.

BOOL IsModified();

Valeur de retour

Différent de zéro si l’état du contrôle a été modifié depuis son dernier enregistrement ; sinon 0.

Notes

L’état d’un contrôle est modifié lorsqu’une propriété change de valeur.

COleControl ::IsOptimizedDraw

Détermine si le conteneur prend en charge le dessin optimisé pour l’opération de dessin actuelle.

BOOL IsOptimizedDraw();

Valeur de retour

TRUE si le conteneur prend en charge le dessin optimisé pour l’opération de dessin actuelle ; sinon FALSE.

Notes

Si le dessin optimisé est pris en charge, le contrôle n’a pas besoin de sélectionner d’anciens objets (stylets, pinceaux, polices, etc.) dans le contexte de l’appareil lorsque le dessin est terminé.

COleControl ::IsSubclassedControl

Appelé par l’infrastructure pour déterminer si le contrôle sous-classe un contrôle Windows.

virtual BOOL IsSubclassedControl();

Valeur de retour

Différent de zéro si le contrôle est sous-classé ; sinon 0.

Notes

Vous devez remplacer cette fonction et retourner TRUE si votre contrôle OLE sous-classe un contrôle Windows.

COleControl ::Load

Réinitialise les données précédentes chargées de façon asynchrone et lance un nouveau chargement de la propriété asynchrone du contrôle.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Paramètres

strNewPath
Pointeur vers une chaîne contenant le chemin d’accès qui fait référence à l’emplacement absolu de la propriété de contrôle asynchrone.

appui
Objet CDataPathProperty implémentant une propriété de contrôle asynchrone.

COleControl ::LockInPlaceActive

Empêche le conteneur de désactiver votre contrôle.

BOOL LockInPlaceActive(BOOL bLock);

Paramètres

bloquer
TRUE si l’état actif sur place du contrôle doit être verrouillé ; FALSE s’il doit être déverrouillé.

Valeur de retour

Différent de zéro si le verrou a réussi ; sinon 0.

Notes

Notez que chaque verrouillage du contrôle doit être associé à un déverrouillage du contrôle une fois terminé. Vous ne devez verrouiller votre contrôle que pendant de courtes périodes, par exemple lors du déclenchement d’un événement.

COleControl ::OnAmbientPropertyChange

Appelé par l’infrastructure lorsqu’une propriété ambiante du conteneur a changé de valeur.

virtual void OnAmbientPropertyChange(DISPID dispid);

Paramètres

dispID
ID de répartition de la propriété ambiante qui a changé, ou DISPID_UNKNOWN si plusieurs propriétés ont changé.

COleControl ::OnAppearanceChanged

Appelé par l’infrastructure lorsque la valeur de propriété d’apparence du stock a changé.

virtual void OnAppearanceChanged ();

Notes

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change. Appels d’implémentation InvalidateControlpar défaut .

COleControl ::OnBackColorChanged

Appelé par l’infrastructure lorsque la valeur de propriété BackColor boursier a changé.

virtual void OnBackColorChanged();

Notes

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change. Appels d’implémentation InvalidateControlpar défaut .

COleControl ::OnBorderStyleChanged

Appelé par l’infrastructure lorsque la valeur de propriété BorderStyle a changé.

virtual void OnBorderStyleChanged();

Notes

Appels d’implémentation InvalidateControlpar défaut .

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change.

COleControl ::OnClick

Appelé par l’infrastructure lorsqu’un bouton de souris a été cliqué ou que la méthode de stock DoClick a été appelée.

virtual void OnClick(USHORT iButton);

Paramètres

iButton
Index d’un bouton de souris. Peut avoir l'une des valeurs suivantes :

  • LEFT_BUTTON Le bouton gauche de la souris a été cliqué.

  • MIDDLE_BUTTON Le bouton de la souris centrale a été cliqué.

  • RIGHT_BUTTON Le bouton droit de la souris a été cliqué.

Notes

Appels d’implémentation COleControl::FireClickpar défaut .

Remplacez cette fonction membre pour modifier ou étendre la gestion par défaut.

COleControl ::OnClose

Appelé par l’infrastructure lorsque le conteneur a appelé la fonction du IOleControl::Close contrôle.

virtual void OnClose(DWORD dwSaveOption);

Paramètres

dwSaveOption
Indicateur qui indique si l’objet doit être enregistré avant le chargement. Les valeurs valides sont :

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Notes

Par défaut, OnClose enregistre l’objet de contrôle s’il a été modifié et dwSaveOption est OLECLOSE_SAVEIFDIRTY ou OLECLOSE_PROMPTSAVE.

COleControl ::OnDoVerb

Appelé par l’infrastructure lorsque le conteneur appelle la IOleObject::DoVerb fonction membre.

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Paramètres

iVerb
Index du verbe de contrôle à appeler.

lpMsg
Pointeur vers le message Windows qui a provoqué l’appel du verbe.

hWndParent
Handle vers la fenêtre parente du contrôle. Si l’exécution du verbe crée une fenêtre (ou des fenêtres), hWndParent doit être utilisé comme parent.

lpRect
Pointeur vers une structure RECT dans laquelle les coordonnées du contrôle, relatives au conteneur, seront copiées.

Valeur de retour

Différent de zéro si l’appel a réussi ; sinon 0.

Notes

L’implémentation par défaut utilise les entrées de mappage de messages ON_OLEVERB et ON_STDOLEVERB pour déterminer la fonction appropriée à appeler.

Remplacez cette fonction pour modifier la gestion par défaut du verbe.

COleControl ::OnDraw

Appelé par l’infrastructure pour dessiner le contrôle OLE dans le rectangle englobant spécifié à l’aide du contexte d’appareil spécifié.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Paramètres

pDC
Contexte d’appareil dans lequel le dessin se produit.

rcBounds
Zone rectangulaire du contrôle, y compris la bordure.

rcInvalid
Zone rectangulaire du contrôle non valide.

Notes

OnDraw est généralement appelé pour l’affichage de l’écran, en passant un contexte d’appareil d’écran en tant que contrôleur de domaine principal. Le paramètre rcBounds identifie le rectangle dans le contexte de l’appareil cible (par rapport à son mode de mappage actuel). Le paramètre rcInvalid est le rectangle réel non valide. Dans certains cas, il s’agit d’une zone plus petite que rcBounds.

COleControl ::OnDrawMetafile

Appelé par l’infrastructure pour dessiner le contrôle OLE dans le rectangle englobant spécifié à l’aide du contexte d’appareil de métafichier spécifié.

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Paramètres

pDC
Contexte d’appareil dans lequel le dessin se produit.

rcBounds
Zone rectangulaire du contrôle, y compris la bordure.

Notes

L’implémentation par défaut appelle la fonction OnDraw .

COleControl ::OnEdit

Provoque l’activation du contrôle.

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Paramètres

lpMsg
Pointeur vers le message Windows qui a appelé le verbe.

hWndParent
Handle vers la fenêtre parente du contrôle.

lpRect
Pointeur vers le rectangle utilisé par le contrôle dans le conteneur.

Valeur de retour

Différent de zéro si l’appel réussit ; sinon 0.

Notes

Cela a le même effet que l’appel du verbe OLEIVERB_UIACTIVATE du contrôle.

Cette fonction est généralement utilisée comme fonction de gestionnaire pour une entrée de mappage de messages ON_OLEVERB. Cela rend un verbe « Modifier » disponible dans le menu « Objet » du contrôle. Par exemple :

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl ::OnEnabledChanged

Appelé par l’infrastructure lorsque la valeur de propriété Activée en stock a changé.

virtual void OnEnabledChanged();

Notes

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change. L’implémentation par défaut appelle InvalidateControl.

COleControl ::OnEnumVerbs

Appelé par l’infrastructure lorsque le conteneur appelle la IOleObject::EnumVerbs fonction membre.

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Paramètres

ppenumOleVerb
Pointeur vers l’objet IEnumOLEVERB qui énumère les verbes du contrôle.

Valeur de retour

Différent de zéro si les verbes sont disponibles ; sinon 0.

Notes

L’implémentation par défaut énumère les entrées ON_OLEVERB dans le mappage de messages.

Remplacez cette fonction pour modifier la façon par défaut d’énumérer des verbes.

COleControl ::OnEventAdvise

Appelé par l’infrastructure lorsqu’un gestionnaire d’événements est connecté ou déconnecté d’un contrôle OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Paramètres

bAdvise
TRUE indique qu’un gestionnaire d’événements a été connecté au contrôle. FALSE indique qu’un gestionnaire d’événements a été déconnecté du contrôle.

COleControl ::OnFontChanged

Appelé par l’infrastructure lorsque la valeur de la propriété Font stock a changé.

virtual void OnFontChanged();

Notes

Appels d’implémentation COleControl::InvalidateControlpar défaut . Si le contrôle sous-classe un contrôle Windows, l’implémentation par défaut envoie également un message WM_SETFONT à la fenêtre du contrôle.

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change.

Exemple

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl ::OnForeColorChanged

Appelé par l’infrastructure lorsque la valeur de propriété ForeColor a changé.

virtual void OnForeColorChanged();

Notes

Appels d’implémentation InvalidateControlpar défaut .

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change.

COleControl ::OnFreezeEvents

Appelé par l’infrastructure après l’appel IOleControl::FreezeEventsdu conteneur .

virtual void OnFreezeEvents(BOOL bFreeze);

Paramètres

bFreeze
TRUE si la gestion des événements du contrôle est figée ; sinon FALSE.

Notes

L'implémentation par défaut n'exécute aucune opération.

Remplacez cette fonction si vous souhaitez un comportement supplémentaire lorsque la gestion des événements est figée ou non chiffrée.

COleControl ::OnGetColorSet

Appelé par l’infrastructure lorsque le conteneur appelle la IViewObject::GetColorSet fonction membre.

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Paramètres

Ptd
Pointe vers l’appareil cible pour lequel l’image doit être affichée. Si cette valeur est NULL, l’image doit être rendue pour un appareil cible par défaut, généralement un appareil d’affichage.

hicTargetDev
Spécifie le contexte d’informations sur l’appareil cible indiqué par ptd. Ce paramètre peut être un contexte d’appareil, mais il n’en est pas nécessairement un. Si ptd est NULL, hicTargetDev doit également être NULL.

ppColorSet
Pointeur vers l’emplacement dans lequel l’ensemble de couleurs à utiliser doit être copié. Si la fonction ne retourne pas le jeu de couleurs, LA valeur NULL est retournée.

Valeur de retour

Différent de zéro si un jeu de couleurs valide est retourné ; sinon 0.

Notes

Le conteneur appelle cette fonction pour obtenir toutes les couleurs nécessaires pour dessiner le contrôle OLE. Le conteneur peut utiliser les jeux de couleurs obtenus conjointement avec les couleurs dont il a besoin pour définir la palette de couleurs globale. L’implémentation par défaut retourne FALSE.

Remplacez cette fonction pour effectuer un traitement spécial de cette requête.

COleControl ::OnGetControlInfo

Appelé par l’infrastructure lorsque le conteneur du contrôle a demandé des informations sur le contrôle.

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Paramètres

pControlInfo
Pointeur vers une structure CONTROLINFO à remplir.

Notes

Ces informations se composent principalement d’une description des clés mnemoniques du contrôle. L’implémentation par défaut remplit pControlInfo avec des informations par défaut.

Remplacez cette fonction si votre contrôle doit traiter des clés mnémoniques.

COleControl ::OnGetDisplayString

Appelé par l’infrastructure pour obtenir une chaîne qui représente la valeur actuelle de la propriété identifiée par dispid.

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Paramètres

dispid
ID de distribution d’une propriété du contrôle.

strValue
Référence à un objet CString par le biais duquel une chaîne sera retournée.

Valeur de retour

Différent de zéro si une chaîne a été retournée dans strValue ; sinon, 0.

Notes

Remplacez cette fonction si votre contrôle a une propriété dont la valeur ne peut pas être convertie directement en chaîne et que vous souhaitez que la valeur de la propriété s’affiche dans un navigateur de propriétés fourni par conteneur.

COleControl ::OnGetInPlaceMenu

Appelé par l’infrastructure lorsque l’interface utilisateur du contrôle est activée pour obtenir le menu à fusionner dans le menu existant du conteneur.

virtual HMENU OnGetInPlaceMenu();

Valeur de retour

Handle du menu du contrôle, ou NULL si le contrôle n’a aucun. L’implémentation par défaut retourne NULL.

Notes

Pour plus d’informations sur la fusion des ressources OLE, consultez l’article Menus et Ressources (OLE) .

COleControl ::OnGetNaturalExtent

Appelé par l’infrastructure en réponse à la demande d’un IViewObjectEx::GetNaturalExtent conteneur.

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Paramètres

dwAspect
Spécifie la représentation de l'objet. Les représentations incluent du contenu, une icône, une miniature ou un document imprimé. Les valeurs valides sont extraites de l’énumération DVASPECT ou DVASPECT2.

lindex
Partie de l’objet qui est intéressant. Actuellement, seul -1 est valide.

Ptd
Pointe vers la structure DVTARGETDEVICE définissant l’appareil cible pour lequel la taille de l’objet doit être retournée.

hicTargetDev
Spécifie le contexte d’informations de l’appareil cible indiqué par le paramètre ptd à partir duquel l’objet peut extraire les métriques de l’appareil et tester les fonctionnalités de l’appareil. Si ptd est NULL, l’objet doit ignorer la valeur dans le paramètre hicTargetDev .

pExtentInfo
Pointe vers la DVEXTENTINFO structure qui spécifie les données de dimensionnement. La DVEXTENTINFO structure est la suivante :

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Le membre dwExtentMode de structure peut prendre l’une des deux valeurs suivantes :

  • DVEXTENT_CONTENT Demandez à quel point le contrôle doit être important pour ajuster exactement le contenu (composant logiciel enfichable)

  • DVEXTENT_INTEGRAL Lors du redimensionnement, passez la taille proposée pour contrôler

psizel
Pointe vers le dimensionnement des données retournées par le contrôle. Les données de dimensionnement retournées sont définies sur -1 pour toute dimension qui n’a pas été ajustée.

Valeur de retour

Différent de zéro s’il retourne ou ajuste correctement la taille ; sinon 0.

Notes

Remplacez cette fonction pour renvoyer la taille d’affichage de l’objet la plus proche de la taille proposée et ex mode tente dans la DVEXTENTINFO structure. L’implémentation par défaut retourne FALSE et n’effectue aucun ajustement de la taille.

COleControl ::OnGetPredefinedStrings

Appelé par l’infrastructure pour obtenir un ensemble de chaînes prédéfinies représentant les valeurs possibles d’une propriété.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Paramètres

dispid
ID de distribution d’une propriété du contrôle.

pStringArray
Tableau de chaînes à remplir avec des valeurs de retour.

pCookieArray
Tableau DWORD à remplir avec des valeurs de retour.

Valeur de retour

Différent de zéro si des éléments ont été ajoutés à pStringArray et pCookieArray.

Notes

Remplacez cette fonction si votre contrôle a une propriété avec un ensemble de valeurs possibles qui peuvent être représentées par des chaînes. Pour chaque élément ajouté à pStringArray, vous devez ajouter un élément « cookie » correspondant à pCookieArray. Ces valeurs de « cookie » peuvent être passées ultérieurement par l’infrastructure à la COleControl::OnGetPredefinedValue fonction.

COleControl ::OnGetPredefinedValue

Appelé par l’infrastructure pour obtenir la valeur correspondant à l’une des chaînes prédéfinies précédemment retournées par un remplacement de COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Paramètres

dispid
ID de distribution d’une propriété du contrôle.

dwCookie
Valeur de cookie précédemment retournée par une substitution de COleControl::OnGetPredefinedStrings.

lpvarOut
Pointeur vers une VARIANT structure à travers laquelle une valeur de propriété sera retournée.

Valeur de retour

Différent de zéro si une valeur a été retournée dans lpvarOut ; sinon, 0.

COleControl ::OnGetViewExtent

Appelé par l’infrastructure en réponse à la requête IViewObject2 ::GetExtent d’un conteneur.

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Paramètres

dwDrawAspect
DWORD décrivant le formulaire ou l’aspect d’un objet doit être affiché. Les valeurs valides sont extraites de l’énumération DVASPECT ou DVASPECT2.

lindex
Partie de l’objet qui est intéressant. Actuellement, seul -1 est valide.

Ptd
Pointe vers la structure DVTARGETDEVICE définissant l’appareil cible pour lequel la taille de l’objet doit être retournée.

lpsizel
Pointe vers l’emplacement où la taille de l’objet est retournée.

Valeur de retour

Différent de zéro si les informations d’étendue sont correctement retournées ; sinon 0.

Notes

Remplacez cette fonction si votre contrôle utilise un dessin à deux passes et que ses parties opaques et transparentes ont des dimensions différentes.

COleControl ::OnGetViewRect

Appelé par l’infrastructure en réponse à la demande d’un IViewObjectEx::GetRect conteneur.

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Paramètres

dwAspect
DWORD décrivant le formulaire ou l’aspect d’un objet doit être affiché. Les valeurs valides sont extraites de l’énumération DVASPECT ou DVASPECT2 :

  • DVASPECT_CONTENT rectangle englobant de l’objet entier. Coin supérieur gauche à l’origine de l’objet et taille égale à l’étendue retournée par GetViewExtent.

  • DVASPECT_OPAQUE Objets avec une région opaque rectangulaire retourne ce rectangle. D’autres échouent.

  • DVASPECT_TRANSPARENT Rectangle couvrant toutes les parties transparentes ou irrégulières.

pRect
Pointe vers la structure RECTL spécifiant le rectangle dans lequel l’objet doit être dessiné. Ce paramètre contrôle le positionnement et l’étirement de l’objet.

Valeur de retour

Différent de zéro si le rectangle dimensionné à l’objet est retourné avec succès ; sinon 0.

Notes

La taille de l’objet est convertie OnGetViewRect en rectangle à partir d’une position spécifique (la valeur par défaut est le coin supérieur gauche de l’affichage). Remplacez cette fonction si votre contrôle utilise un dessin à deux passes et que ses parties opaques et transparentes ont des dimensions différentes.

COleControl ::OnGetViewStatus

Appelé par l’infrastructure en réponse à la demande d’un IViewObjectEx::GetViewStatus conteneur.

virtual DWORD OnGetViewStatus();

Valeur de retour

Une des valeurs de l’énumération VIEWSTATUS en cas de réussite ; sinon 0. Les valeurs possibles sont toutes les combinaisons des éléments suivants :

Nom Description
VIEWSTATUS_OPAQUE L’objet est complètement opaque. Si ce bit n’est pas défini, l’objet contient des parties transparentes. Ce bit s’applique uniquement aux aspects liés au contenu et non aux DVASPECT_ICON ou aux DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND L’objet a un arrière-plan unie (composé d’une couleur unie, et non d’un modèle de pinceau). Ce bit n’est significatif que si VIEWSTATUS_OPAQUE est défini et s’applique uniquement aux aspects liés au contenu et non à DVASPECT_ICON ou DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE L’objet prend en charge DVASPECT_OPAQUE. Toutes les méthodes IViewObjectEx qui prennent un aspect de dessin en tant que paramètre peuvent être appelées avec cet aspect.
VIEWSTATUS_DVASPECTTRANSPARENT L’objet prend en charge DVASPECT_TRANSPARENT. Toutes les IViewObjectEx méthodes qui prennent un aspect de dessin en tant que paramètre peuvent être appelées avec cet aspect.

Notes

Remplacez cette fonction si votre contrôle utilise un dessin à deux passes. L’implémentation par défaut retourne VIEWSTATUS_OPAQUE.

COleControl ::OnHideToolBars

Appelé par l’infrastructure lorsque l’interface utilisateur du contrôle est désactivée.

virtual void OnHideToolBars();

Notes

L’implémentation doit masquer toutes les barres d’outils affichées par OnShowToolbars.

COleControl ::OnInactiveMouseMove

Appelé par le conteneur de l’objet inactif sous le pointeur de la souris lors de la réception d’un message WM_MOUSEMOVE.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Paramètres

lprcBounds
Rectangle englobant d’objets, dans les coordonnées clientes de la fenêtre contenante. Indique à l’objet sa position et sa taille exactes à l’écran lorsque le message WM_MOUSEMOVE a été reçu.

x
Coordonnée x de l’emplacement de la souris dans les coordonnées clientes de la fenêtre contenante.

y
Coordonnée y de l’emplacement de la souris dans les coordonnées clientes de la fenêtre contenante.

dwKeyState
Identifie l’état actuel des touches de modificateur de clavier sur le clavier. Les valeurs valides peuvent être une combinaison de l’un des indicateurs MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON et MK_RBUTTON.

Notes

Notez que les coordonnées clientes de fenêtre (pixels) sont utilisées pour passer la position du curseur de la souris. Cela est rendu possible en passant également le rectangle englobant de l’objet dans le même système de coordonnées.

COleControl ::OnInactiveSetCursor

Appelé par le conteneur pour l’objet inactif sous le pointeur de la souris lors de la réception d’un message WM_SETCURSOR.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Paramètres

lprcBounds
Rectangle englobant d’objets, dans les coordonnées clientes de la fenêtre contenante. Indique à l’objet sa position et sa taille exactes à l’écran lorsque le message WM_SETCURSOR a été reçu.

x
Coordonnée x de l’emplacement de la souris dans les coordonnées clientes de la fenêtre contenante.

y
Coordonnée y de l’emplacement de la souris dans les coordonnées clientes de la fenêtre contenante.

dwMouseMsg
Identificateur du message de la souris pour lequel une WM_SETCURSOR s’est produite.

bSetAlways
Spécifie si l’objet doit définir ou non le curseur. Si la valeur est TRUE, l’objet doit définir le curseur ; si la valeur est FALSE, le curseur n’est pas obligé de définir le curseur et doit retourner S_FALSE dans ce cas.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Notez que les coordonnées clientes de fenêtre (pixels) sont utilisées pour passer la position du curseur de la souris. Cela est rendu possible en passant également le rectangle englobant de l’objet dans le même système de coordonnées.

COleControl ::OnKeyDownEvent

Appelé par l’infrastructure après le traitement d’un événement KeyDown boursier.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Paramètres

nChar
Valeur de code de clé virtuelle de la touche enfoncée. Pour obtenir la liste des codes de clé virtuelle standard, consultez Winuser.h

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

Notes

Remplacez cette fonction si votre contrôle a besoin d’accéder aux informations de clé une fois l’événement déclenché.

COleControl ::OnKeyPressEvent

Appelé par l’infrastructure après le déclenchement de l’événement KeyPress boursier.

virtual void OnKeyPressEvent(USHORT nChar);

Paramètres

nChar
Contient la valeur du code de clé virtuelle de la touche enfoncée. Pour obtenir la liste des codes de clé virtuelle standard, consultez Winuser.h

Notes

Notez que la valeur nChar a peut-être été modifiée par le conteneur.

Remplacez cette fonction si vous souhaitez une notification après cet événement.

COleControl ::OnKeyUpEvent

Appelé par l’infrastructure après le traitement d’un événement KeyDown boursier.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Paramètres

nChar
Valeur de code de clé virtuelle de la touche enfoncée. Pour obtenir la liste des codes de clé virtuelle standard, consultez Winuser.h

nShiftState
Contient une combinaison des indicateurs suivants :

  • SHIFT_MASK La touche Maj a été enfoncée pendant l’action.

  • CTRL_MASK La touche Ctrl a été enfoncée pendant l’action.

  • ALT_MASK La touche Alt a été enfoncée pendant l’action.

Notes

Remplacez cette fonction si votre contrôle a besoin d’accéder aux informations de clé une fois l’événement déclenché.

COleControl ::OnMapPropertyToPage

Appelé par l’infrastructure pour obtenir l’ID de classe d’une page de propriétés qui implémente la modification de la propriété spécifiée.

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Paramètres

dispid
ID de distribution d’une propriété du contrôle.

lpclsid
Pointeur vers une CLSID structure à travers laquelle un ID de classe sera retourné.

pbPageOptional
Retourne un indicateur indiquant si l’utilisation de la page de propriétés spécifiée est facultative.

Valeur de retour

Différent de zéro si un ID de classe a été retourné dans lpclsid ; sinon, 0.

Notes

Remplacez cette fonction pour fournir un moyen d’appeler les pages de propriétés de votre contrôle à partir du navigateur de propriétés du conteneur.

COleControl ::OnMnemonic

Appelé par l’infrastructure lorsque le conteneur a détecté qu’une clé mnémonique du contrôle OLE a été enfoncée.

virtual void OnMnemonic(LPMSG pMsg);

Paramètres

pMsg
Pointeur vers le message Windows généré par une pression sur une touche mnémonique.

COleControl ::OnProperties

Appelé par l’infrastructure lorsque le verbe de propriétés du contrôle a été appelé par le conteneur.

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Paramètres

lpMsg
Pointeur vers le message Windows qui a appelé le verbe.

hWndParent
Handle vers la fenêtre parente du contrôle.

lpRect
Pointeur vers le rectangle utilisé par le contrôle dans le conteneur.

Valeur de retour

Différent de zéro si l’appel réussit ; sinon 0.

Notes

L’implémentation par défaut affiche une boîte de dialogue de propriété modale.

Vous pouvez également utiliser cette fonction pour provoquer l’affichage des pages de propriétés de votre contrôle. Effectuez un appel à la OnProperties fonction, en passant le handle du parent de votre contrôle dans le paramètre hWndParent . Dans ce cas, les valeurs des paramètres lpMsg et lpRect sont ignorées.

COleControl ::OnQueryHitPoint

Appelé par l’infrastructure en réponse à la demande d’un IViewObjectEx::QueryHitPoint conteneur.

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Paramètres

dwAspect
Spécifie la façon dont l’objet est représenté. Les valeurs valides sont extraites de l’énumération DVASPECT ou DVASPECT2.

pRectBounds
Pointeur vers une RECT structure spécifiant le rectangle englobant de la zone cliente du contrôle OLE.

ptlLoc
Pointeur vers la POINT structure spécifiant le point à vérifier pour une correspondance. Le point est spécifié dans les coordonnées de la zone cliente OLE.

lCloseHint
Distance qui définit « fermer » au point vérifié pour un coup.

pHitResult
Pointeur vers le résultat de la requête d’accès. Une des valeurs suivantes :

  • HITRESULT_OUTSIDE ptlLoc se trouve en dehors de l’objet OLE et ne se ferme pas.

  • HITRESULT_TRANSPARENT ptlLoc se trouve dans les limites de l’objet OLE, mais pas près de l’image. Par exemple, un point au milieu d’un cercle transparent peut être HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc est à l’intérieur ou à l’extérieur de l’objet OLE, mais assez proche de l’objet à considérer à l’intérieur. Les objets petits, minces ou détaillés peuvent utiliser cette valeur. Même si un point se trouve en dehors du rectangle englobant d’un objet, il peut toujours être proche (cela est nécessaire pour atteindre de petits objets).

  • HITRESULT_HIT ptlLoc se trouve dans l’image de l’objet.

Valeur de retour

Différent de zéro si un résultat d’accès est correctement retourné ; sinon 0. Une correspondance est un chevauchement avec la zone d’affichage du contrôle OLE.

Notes

Interroge si le rectangle d’affichage d’un objet chevauche le point donné (atteint le point). QueryHitPoint peut être substitué pour tester les correspondances pour les objets non rectangulaires.

COleControl ::OnQueryHitRect

Appelé par l’infrastructure en réponse à la demande d’un IViewObjectEx::QueryHitRect conteneur.

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Paramètres

dwAspect
Spécifie la représentation de l'objet. Les valeurs valides sont extraites de l’énumération DVASPECT ou DVASPECT2.

pRectBounds
Pointeur vers une RECT structure spécifiant le rectangle englobant de la zone cliente du contrôle OLE.

prcLoc
Pointeur vers la RECT structure spécifiant le rectangle à rechercher (chevaucher le rectangle de l’objet), par rapport au coin supérieur gauche de l’objet.

lCloseHint
Aucun affichage.

pHitResult
Pointeur vers le résultat de la requête d’accès. Une des valeurs suivantes :

  • HITRESULT_OUTSIDE aucun point dans le rectangle n’est atteint par l’objet OLE.

  • HITRESULT_HIT au moins un point dans le rectangle serait un accès sur l’objet.

Valeur de retour

Différent de zéro si un résultat d’accès est correctement retourné ; sinon 0.

Notes

Interroge si le rectangle d’affichage d’un objet chevauche n’importe quel point dans le rectangle donné (atteint le rectangle). QueryHitRect peut être substitué pour tester les correspondances pour les objets non rectangulaires.

COleControl ::OnRenderData

Appelé par l’infrastructure pour récupérer les données au format spécifié.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

lpStgMedium
Pointe vers une structure STGMEDIUM dans laquelle les données doivent être retournées.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Le format spécifié est un précédemment placé dans l’objet de contrôle à l’aide des fonctions membres DelayRenderData ou DelayRenderFileData pour le rendu différé. L’implémentation par défaut de cette fonction appelle OnRenderFileData ou OnRenderGlobalData, respectivement, si le support de stockage fourni est un fichier ou une mémoire. Si le format demandé est CF_METAFILEPICT ou si le format de jeu de propriétés persistants est défini, l’implémentation par défaut affiche les données appropriées et retourne une valeur différente de zéro. Sinon, elle retourne 0 et ne fait rien.

Si lpStgMedium-tymed> est TYMED_NULL, le STGMEDIUM doit être alloué et rempli comme spécifié par lpFormatEtc-tymed>. Si ce n’est pas TYMED_NULL, le STGMEDIUM doit être rempli en place avec les données.

Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vos données sont petites et fixes en taille, remplacez OnRenderGlobalData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez les structures et STGMEDIUM les FORMATETC structures dans le Kit de développement logiciel (SDK) Windows.

COleControl ::OnRenderFileData

Appelé par l’infrastructure pour récupérer des données au format spécifié lorsque le support de stockage est un fichier.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

pFile
Pointe vers un objet CFile dans lequel les données doivent être rendues.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Le format spécifié est un précédemment placé dans l’objet de contrôle à l’aide de la fonction membre DelayRenderData pour le rendu différé. L’implémentation par défaut de cette fonction retourne simplement FALSE.

Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vous souhaitez gérer plusieurs supports de stockage, remplacez OnRenderData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez la FORMATETC structure du Kit de développement logiciel (SDK) Windows.

COleControl ::OnRenderGlobalData

Appelé par l’infrastructure pour récupérer des données au format spécifié lorsque le support de stockage spécifié est la mémoire globale.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Paramètres

lpFormatEtc
Pointe vers la structure FORMATETC spécifiant le format dans lequel les informations sont demandées.

phGlobal
Pointe vers un handle vers la mémoire globale dans laquelle les données doivent être retournées. Si aucune mémoire n’a été allouée, ce paramètre peut être NULL.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Le format spécifié est un précédemment placé dans l’objet de contrôle à l’aide de la fonction membre DelayRenderData pour le rendu différé. L’implémentation par défaut de cette fonction retourne simplement FALSE.

Si phGlobal est NULL, un nouveau HGLOBAL doit être alloué et retourné dans phGlobal. Sinon, le HGLOBAL spécifié par phGlobal doit être rempli avec les données. La quantité de données placées dans le HGLOBAL ne doit pas dépasser la taille actuelle du bloc de mémoire. En outre, le bloc ne peut pas être réaffecté à une plus grande taille.

Remplacez cette fonction pour fournir vos données au format et au support demandés. Selon vos données, vous pouvez remplacer l’une des autres versions de cette fonction à la place. Si vous souhaitez gérer plusieurs supports de stockage, remplacez OnRenderData. Si vos données se trouvent dans un fichier ou sont de taille variable, remplacez OnRenderFileData.

Pour plus d’informations, consultez la FORMATETC structure du Kit de développement logiciel (SDK) Windows.

COleControl ::OnResetState

Appelé par l’infrastructure lorsque les propriétés du contrôle doivent être définies sur leurs valeurs par défaut.

virtual void OnResetState();

Notes

L’implémentation par défaut appelle DoPropExchange, en passant un CPropExchange objet qui entraîne la définition des propriétés sur leurs valeurs par défaut.

L’enregistreur de contrôles peut insérer du code d’initialisation pour le contrôle OLE dans cette substitution. Cette fonction est appelée lorsque IPersistStream ::Load ou IPersistStorage ::Load échoue, ou IPersistStreamInit ::InitNew ou IPersistStorage ::InitNew est appelé, sans appeler l’un ou l’autreIPersistStream::Load.IPersistStorage::Load

COleControl ::OnSetClientSite

Appelé par l’infrastructure lorsque le conteneur a appelé la fonction du IOleControl::SetClientSite contrôle.

virtual void OnSetClientSite();

Notes

Par défaut, vérifie si les OnSetClientSite propriétés du chemin d’accès aux données sont chargées et, si elles le sont, appellent DoDataPathPropExchange.

Remplacez cette fonction pour effectuer un traitement spécial de cette notification. En particulier, les remplacements de cette fonction doivent appeler la classe de base.

COleControl ::OnSetData

Appelé par l’infrastructure pour remplacer les données du contrôle par les données spécifiées.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Paramètres

lpFormatEtc
Pointeur vers une structure FORMATETC spécifiant le format des données.

lpStgMedium
Pointeur vers une structure STGMEDIUM dans laquelle résident les données.

bRelease
TRUE si le contrôle doit libérer le support de stockage ; FALSE si le contrôle ne doit pas libérer le support de stockage.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Si les données se situent au format de jeu de propriétés persistants, l’implémentation par défaut modifie l’état du contrôle en conséquence. Sinon, l’implémentation par défaut ne fait rien. Si bRelease a la valeur TRUE, un appel est ReleaseStgMedium effectué ; sinon.

Remplacez cette fonction pour remplacer les données du contrôle par les données spécifiées.

Pour plus d’informations, consultez les structures et STGMEDIUM les FORMATETC structures dans le Kit de développement logiciel (SDK) Windows.

COleControl ::OnSetExtent

Appelé par l’infrastructure lorsque l’étendue du contrôle doit être modifiée, suite à un appel à IOleObject ::SetExtent.

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Paramètres

lpSizeL
Pointeur vers la SIZEL structure qui utilise des entiers longs pour représenter la largeur et la hauteur du contrôle, exprimées en unités HIMETRIC.

Valeur de retour

Différent de zéro si la modification de taille a été acceptée ; sinon 0.

Notes

L’implémentation par défaut gère le redimensionnement de l’étendue du contrôle. Si le contrôle est actif sur place, un appel aux conteneurs OnPosRectChanged est effectué.

Remplacez cette fonction pour modifier le redimensionnement par défaut de votre contrôle.

COleControl ::OnSetObjectRects

Appelé par l’infrastructure pour implémenter un appel à IOleInPlaceObject ::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Paramètres

lpRectPos
Pointeur vers une RECT structure indiquant la nouvelle position et la nouvelle taille du contrôle par rapport au conteneur.

lpRectClip
Pointeur vers une RECT structure indiquant une zone rectangulaire vers laquelle le contrôle doit être coupé.

Valeur de retour

Différent de zéro si le repositionnement a été accepté ; sinon 0.

Notes

L’implémentation par défaut gère automatiquement le repositionnement et le redimensionnement de la fenêtre de contrôle et retourne TRUE.

Remplacez cette fonction pour modifier le comportement par défaut de cette fonction.

COleControl ::OnShowToolBars

Appelé par l’infrastructure lorsque l’interface utilisateur du contrôle a été activée.

virtual void OnShowToolBars();

Notes

L'implémentation par défaut n'exécute aucune opération.

COleControl ::OnTextChanged

Appelé par l’infrastructure lorsque la valeur de propriété de légende ou de texte a changé.

virtual void OnTextChanged();

Notes

Appels d’implémentation InvalidateControlpar défaut .

Remplacez cette fonction si vous souhaitez la notification après que cette propriété change.

COleControl ::OnWindowlessMessage

Appelé par l’infrastructure en réponse à la demande d’un IOleInPlaceObjectWindowless::OnWindowMessage conteneur.

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Paramètres

msg
Identificateur de message tel qu’il est passé par Windows.

wParam
Tel qu’il est passé par Windows. Spécifie des informations supplémentaires spécifiques aux messages. Le contenu de ce paramètre dépend de la valeur du paramètre msg .

lParam
Tel qu’il est passé par Windows. Spécifie des informations supplémentaires spécifiques aux messages. Le contenu de ce paramètre dépend de la valeur du paramètre msg .

plResult
Code de résultat Windows. Spécifie le résultat du traitement du message et dépend du message envoyé.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Traite les messages de fenêtre pour les contrôles sans fenêtre. COleControldoit OnWindowlessMessage être utilisé pour les messages de fenêtre autres que les messages de souris et les messages clavier. COleControl fournit SetCapture et SetFocus spécifiquement pour obtenir la capture de souris et le focus clavier pour les objets OLE sans fenêtre.

Étant donné que les objets sans fenêtre n’ont pas de fenêtre, ils ont besoin d’un mécanisme pour permettre au conteneur de les distribuer. Un objet OLE sans fenêtre obtient des messages de son conteneur, via la méthode sur l’interface OnWindowMessage IOleInPlaceObjectWindowless (extension d’IOleInPlaceObject pour la prise en charge sans fenêtre). OnWindowMessage ne prend pas de HWND paramètre.

COleControl ::P arentToClient

Convertit les coordonnées de pPoint en coordonnées clientes.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Paramètres

lprcBounds
Pointeur vers les limites du contrôle OLE dans le conteneur. Pas la zone cliente, mais la zone de l’ensemble du contrôle, y compris les bordures et les barres de défilement.

pPoint
Pointeur vers le point parent (conteneur) à traduire en coordonnées de la zone cliente du contrôle.

bHitTest
Spécifie si les tests de positionnement doivent être effectués sur le point.

Valeur de retour

Si bHitTest a la valeur FALSE, retourne HTNOWHERE. Si bHitTest a la valeur TRUE, retourne l’emplacement dans lequel le point parent (conteneur) a atterri dans la zone cliente du contrôle OLE et est l’une des valeurs de test d’accès à la souris suivantes :

  • HTBORDER Dans la bordure d’une fenêtre qui n’a pas de bordure de dimensionnement.

  • HTBOTTOM Dans la bordure horizontale inférieure de la fenêtre.

  • HTBOTTOMLEFT Dans le coin inférieur gauche de la bordure de la fenêtre.

  • HTBOTTOMRIGHT Dans le coin inférieur droit de la bordure de la fenêtre.

  • HTCAPTION Dans une zone de barre de titre.

  • HTCLIENT dans une zone cliente.

  • HTERROR Sur l’arrière-plan de l’écran ou sur une ligne de division entre les fenêtres (identique à HTNOWHERE, sauf que la DefWndProc fonction Windows produit un bip système pour indiquer une erreur).

  • HTGROWBOX Dans une boîte de taille.

  • HTHSCROLL Dans la barre de défilement horizontale.

  • HTLEFT Dans la bordure gauche de la fenêtre.

  • HTMAXBUTTON Dans un bouton Agrandir.

  • HTMENU Dans une zone de menu.

  • HTMINBUTTON Dans un bouton Réduire.

  • HTNOWHERE Sur l’arrière-plan de l’écran ou sur une ligne de division entre les fenêtres.

  • HTREDUCE Dans un bouton Réduire.

  • HTRIGHT Dans la bordure droite de la fenêtre.

  • HTSIZE Dans une boîte de taille (identique à HTGROWBOX).

  • HTSYSMENU Dans un menu Contrôle ou dans un bouton Fermer dans une fenêtre enfant.

  • HTTOP Dans la bordure horizontale supérieure de la fenêtre.

  • HTTOPLEFT Dans le coin supérieur gauche de la bordure de la fenêtre.

  • HTTOPRIGHT Dans le coin supérieur droit de la bordure de la fenêtre.

  • HTTRANSPARENT Dans une fenêtre actuellement couverte par une autre fenêtre.

  • HTVSCROLL Dans la barre de défilement verticale.

  • HTZOOM Dans un bouton Agrandir.

Notes

Sur l’entrée pPoint est relatif à l’origine du parent (coin supérieur gauche du conteneur). Sur la sortie pPoint est relatif à l’origine de la zone cliente du contrôle OLE (coin supérieur gauche de la zone cliente du contrôle).

COleControl ::P ostModalDialog

Avertit le conteneur qu’une boîte de dialogue modale a été fermée.

void PostModalDialog(HWND hWndParent = NULL);

Paramètres

hWndParent
Gérez la fenêtre parente de la boîte de dialogue modale.

Notes

Appelez cette fonction après avoir affiché n’importe quelle boîte de dialogue modale. Vous devez appeler cette fonction pour que le conteneur puisse activer toutes les fenêtres de niveau supérieur désactivées par PreModalDialog. Cette fonction doit être associée à un appel à PreModalDialog.

COleControl ::P reModalDialog

Avertit le conteneur qu’une boîte de dialogue modale est sur le point d’être affichée.

void PreModalDialog(HWND hWndParent = NULL);

Paramètres

hWndParent
Gérez la fenêtre parente de la boîte de dialogue modale.

Notes

Appelez cette fonction avant d’afficher une boîte de dialogue modale. Vous devez appeler cette fonction pour que le conteneur puisse désactiver toutes ses fenêtres de niveau supérieur. Une fois la boîte de dialogue modale affichée, vous devez ensuite appeler PostModalDialog.

COleControl ::RecreateControlWindow

Détruit et recrée la fenêtre du contrôle.

void RecreateControlWindow();

Notes

Cela peut être nécessaire si vous devez modifier les bits de style de la fenêtre.

COleControl ::Refresh

Force un repaint du contrôle OLE.

void Refresh();

Notes

Cette fonction est prise en charge par la COleControl classe de base en tant que méthode stock, appelée Refresh. Cela permet aux utilisateurs de votre contrôle OLE de repeindre le contrôle à un moment spécifique. Pour plus d’informations sur cette méthode, consultez l’article ActiveX Controls : Methods.

COleControl ::ReleaseCapture

Libère la capture de la souris.

BOOL ReleaseCapture();

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Si le contrôle possède actuellement la capture de la souris, la capture est libérée. Sinon, cette fonction n’a aucun effet.

COleControl ::ReleaseDC

Libère le contexte d’appareil d’affichage d’un conteneur d’un contrôle sans fenêtre, en libérant le contexte de l’appareil à utiliser par d’autres applications.

int ReleaseDC(CDC* pDC);

Paramètres

pDC
Identifie le contexte de l’appareil conteneur à libérer.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

L’application doit appeler ReleaseDC chaque appel à GetDC.

COleControl ::ReparentControlWindow

Définit le parent du contrôle.

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Paramètres

hWndOuter
Handle de la fenêtre de contrôle.

hWndParent
Handle de la nouvelle fenêtre parente.

Notes

Appelez cette fonction pour réinitialiser le parent de la fenêtre de contrôle.

COleControl ::ResetStockProps

Initialise l’état des COleControl propriétés de stock à leurs valeurs par défaut.

void ResetStockProps();

Notes

Les propriétés sont : Apparence, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd et Text. Pour obtenir une description des propriétés de stock, consultez Contrôles ActiveX : Ajout de propriétés de stock.

Vous pouvez améliorer les performances d’initialisation binaire d’un contrôle à l’aide ResetStockProps et ResetVersion à remplacer COleControl::OnResetState. Reportez-vous à l’exemple ci-dessous. Pour plus d’informations sur l’optimisation de l’initialisation, consultez Contrôles ActiveX : Optimisation.

Exemple

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl ::ResetVersion

Initialise le numéro de version à la valeur spécifiée.

void ResetVersion(DWORD dwVersionDefault);

Paramètres

dwVersionDefault
Numéro de version à affecter au contrôle.

Notes

Vous pouvez améliorer les performances d’initialisation binaire d’un contrôle à l’aide ResetVersion et ResetStockProps à remplacer COleControl::OnResetState. Consultez l’exemple de ResetStockProps. Pour plus d’informations sur l’optimisation de l’initialisation, consultez Contrôles ActiveX : Optimisation.

COleControl ::ScrollWindow

Permet à un objet OLE sans fenêtre de faire défiler une zone dans son image active sur place à l’écran.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Paramètres

xAmount
Spécifie la quantité, en unités d’appareil, de défilement horizontal. Ce paramètre doit être une valeur négative à faire défiler vers la gauche.

yAmount
Spécifie la quantité, en unités d’appareil, de défilement vertical. Ce paramètre doit être une valeur négative à faire défiler vers le haut.

lpRect
Pointe vers un objet CRect ou une structure RECT qui spécifie la partie de la zone cliente de l’objet OLE à faire défiler, dans les coordonnées clientes de la fenêtre conteneur. Si lpRect a la valeur NULL, la zone cliente de l’objet OLE entière est défiler.

lpClipRect
Pointe vers un objet ou RECT une CRect structure qui spécifie le rectangle à découper. Seuls les pixels à l’intérieur du rectangle sont défilements. Les bits en dehors du rectangle ne sont pas affectés même s’ils se trouvent dans le rectangle lpRect . Si lpClipRect a la valeur NULL, aucune capture n’est effectuée sur le rectangle de défilement.

COleControl ::SelectFontObject

Sélectionne une police dans un contexte d’appareil.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Paramètres

pDC
Pointeur vers un objet de contexte d’appareil.

fontHolder
Référence à l’objet CFontHolder représentant la police à sélectionner.

Valeur de retour

Pointeur vers la police précédemment sélectionnée. Lorsque l’appelant a terminé toutes les opérations de dessin qui utilisent l’espace réservé, elle doit réélectionner la police précédemment sélectionnée en la transmettant en tant que paramètre à CDC ::SelectObject.

COleControl ::SelectStockFont

Sélectionne la propriété Font stock dans un contexte d’appareil.

CFont* SelectStockFont(CDC* pDC);

Paramètres

pDC
Contexte d’appareil dans lequel la police sera sélectionnée.

Valeur de retour

Pointeur vers l’objet précédemment sélectionné CFont . Vous devez utiliser CDC ::SelectObject pour sélectionner cette police dans le contexte de l’appareil lorsque vous avez terminé.

COleControl ::SerializeExtent

Sérialise ou initialise l’état de l’espace d’affichage alloué au contrôle.

void SerializeExtent(CArchive& ar);

Paramètres

Ar
Objet CArchive à sérialiser vers ou depuis.

Notes

Vous pouvez améliorer les performances de persistance binaire d’un contrôle à l’aide SerializeExtentde , SerializeStockPropset SerializeVersion pour remplacer COleControl::Serialize. Reportez-vous à l’exemple ci-dessous. Pour plus d’informations sur l’optimisation de l’initialisation, consultez Contrôles ActiveX : Optimisation.

Exemple

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl ::SerializeStockProps

Sérialise ou initialise l’état des COleControl propriétés de stock : Apparence, BackColor, BorderStyle, Caption, Enabled, Police, ForeColor et Text.

void SerializeStockProps(CArchive& ar);

Paramètres

Ar
Objet CArchive à sérialiser vers ou depuis.

Notes

Pour obtenir une description des propriétés de stock, consultez Contrôles ActiveX : Ajout de propriétés de stock.

Vous pouvez améliorer les performances de persistance binaire d’un contrôle à l’aide SerializeStockPropsde , SerializeExtentet SerializeVersion pour remplacer COleControl::Serialize. Pour obtenir un exemple, consultez le code de SerializeExtent. Pour plus d’informations sur l’optimisation de l’initialisation, consultez Contrôles ActiveX : Optimisation.

COleControl ::SerializeVersion

Sérialise ou initialise l’état des informations de version d’un contrôle.

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Paramètres

Ar
Objet CArchive à sérialiser vers ou depuis.

dwVersionDefault
Numéro de version actuel du contrôle.

bConvert
Indique si les données persistantes doivent être converties au format le plus récent lorsqu’elles sont enregistrées ou conservées dans le même format qu’au moment où elles ont été chargées.

Valeur de retour

Numéro de version du contrôle. Si l’archive spécifiée est chargée, SerializeVersion retourne la version chargée à partir de cette archive. Sinon, elle retourne la version actuellement chargée.

Notes

Vous pouvez améliorer les performances de persistance binaire d’un contrôle à l’aide SerializeVersionde , SerializeExtentet SerializeStockProps pour remplacer COleControl::Serialize. Pour obtenir un exemple, consultez le code de SerializeExtent. Pour plus d’informations sur l’optimisation de l’initialisation, consultez Contrôles ActiveX : Optimisation.

COleControl ::SetAppearance

Définit la valeur de propriété d’apparence du stock de votre contrôle.

void SetAppearance (short sAppearance);

Paramètres

sAppearance
Valeur short (VT_I2) à utiliser pour l’apparence de votre contrôle. La valeur zéro définit l’apparence du contrôle sur plate et la valeur 1 définit l’apparence du contrôle sur 3D.

Notes

Pour plus d’informations sur les propriétés de stock, consultez Contrôles ActiveX : Propriétés.

COleControl ::SetBackColor

Définit la valeur de la propriété BackColor stock de votre contrôle.

void SetBackColor(OLE_COLOR dwBackColor);

Paramètres

dwBackColor
Valeur OLE_COLOR à utiliser pour le dessin d’arrière-plan de votre contrôle.

Notes

Pour plus d’informations sur l’utilisation de cette propriété et d’autres propriétés associées, consultez l’article Contrôles ActiveX : Propriétés.

COleControl ::SetBorderStyle

Définit la valeur de la propriété BorderStyle stock de votre contrôle.

void SetBorderStyle(short sBorderStyle);

Paramètres

sBorderStyle
Nouveau style de bordure pour le contrôle ; 0 indique aucune bordure et 1 indique une bordure normale.

Notes

La fenêtre de contrôle sera ensuite recréé et OnBorderStyleChanged appelée.

COleControl ::SetCapture

Fait en sorte que la fenêtre conteneur du contrôle prenne possession de la capture de la souris au nom du contrôle.

CWnd* SetCapture();

Valeur de retour

Pointeur vers l’objet CWnd fenêtre qui a précédemment reçu l’entrée de la souris.

Notes

Si le contrôle est activé et sans fenêtre, cette fonction amène la fenêtre conteneur du contrôle à prendre possession de la capture de la souris, au nom du contrôle. Dans le cas contraire, cette fonction entraîne le contrôle lui-même à prendre possession de la capture de la souris (identique à CWnd::SetCapture).

COleControl ::SetControlSize

Définit la taille de la fenêtre de contrôle OLE et informe le conteneur que le site de contrôle change.

BOOL SetControlSize(int cx, int cy);

Paramètres

cx
Spécifie la nouvelle largeur du contrôle en pixels.

Cy
Spécifie la nouvelle hauteur du contrôle en pixels.

Valeur de retour

Différent de zéro si l’appel a réussi ; sinon 0.

Notes

Cette fonction ne doit pas être utilisée dans le constructeur de votre contrôle.

Notez que toutes les coordonnées des fenêtres de contrôle sont relatives au coin supérieur gauche du contrôle.

COleControl ::SetEnabled

Définit la valeur de la propriété Activée en stock de votre contrôle.

void SetEnabled(BOOL bEnabled);

Paramètres

bEnabled
TRUE si le contrôle doit être activé ; sinon FALSE.

Notes

Après avoir défini cette propriété, OnEnabledChange est appelée.

COleControl ::SetFocus

Provoque la prise en charge de la fenêtre conteneur du contrôle par le focus d’entrée au nom du contrôle.

CWnd* SetFocus();

Valeur de retour

Pointeur vers l’objet CWnd de fenêtre qui avait précédemment le focus d’entrée ou NULL s’il n’y a pas de fenêtre de ce type.

Notes

Si le contrôle est activé et sans fenêtre, cette fonction entraîne la prise en charge de la fenêtre conteneur du contrôle par le focus d’entrée, au nom du contrôle. Le focus d’entrée dirige l’entrée du clavier vers la fenêtre du conteneur, et le conteneur distribue tous les messages clavier suivants à l’objet OLE qui appelle SetFocus. Toute fenêtre qui avait précédemment le focus d’entrée le perd.

Si le contrôle n’est pas sans fenêtre, cette fonction entraîne le contrôle lui-même à prendre possession du focus d’entrée (identique à CWnd::SetFocus).

COleControl ::SetFont

Définit la propriété Font stock de votre contrôle.

void SetFont(LPFONTDISP pFontDisp);

Paramètres

pFontDisp
Pointeur vers une interface de distribution de police.

COleControl ::SetForeColor

Définit la valeur de la propriété ForeColor de votre contrôle.

void SetForeColor(OLE_COLOR dwForeColor);

Paramètres

dwForeColor
Valeur OLE_COLOR à utiliser pour le dessin au premier plan de votre contrôle.

Notes

Pour plus d’informations sur l’utilisation de cette propriété et d’autres propriétés associées, consultez l’article Contrôles ActiveX : Propriétés.

COleControl ::SetInitialDataFormats

Appelé par l’infrastructure pour initialiser la liste des formats de données pris en charge par le contrôle.

virtual void SetInitialDataFormats();

Notes

L’implémentation par défaut spécifie deux formats : CF_METAFILEPICT et le jeu de propriétés persistantes.

COleControl ::SetInitialSize

Définit la taille d’un contrôle OLE lorsqu’il s’affiche pour la première fois dans un conteneur.

void SetInitialSize(
    int cx,
    int cy);

Paramètres

cx
Largeur initiale du contrôle OLE en pixels.

Cy
Hauteur initiale du contrôle OLE en pixels.

Notes

Appelez cette fonction dans votre constructeur pour définir la taille initiale de votre contrôle. La taille initiale est mesurée en unités d’appareil ou en pixels. Il est recommandé que cet appel soit effectué dans le constructeur de votre contrôle.

COleControl ::SetModifiedFlag

Modifie l’état modifié d’un contrôle.

void SetModifiedFlag(BOOL bModified = TRUE);

Paramètres

bModified
Nouvelle valeur de l’indicateur modifié du contrôle. TRUE indique que l’état du contrôle a été modifié ; FALSE indique que l’état du contrôle vient d’être enregistré.

Notes

Appelez cette fonction chaque fois qu’une modification se produit qui affecterait l’état persistant de votre contrôle. Par exemple, si la valeur d’une propriété persistante change, appelez cette fonction avec bModified TRUE.

COleControl ::SetNotPermitted

Indique qu’une demande de modification a échoué.

void SetNotPermitted();

Notes

Appelez cette fonction en BoundPropertyRequestEdit cas d’échec. Cette fonction lève une exception de type COleDispScodeException pour indiquer que l’opération set n’a pas été autorisée.

COleControl ::SetNotSupported

Empêche la modification de la valeur de propriété d’un contrôle par l’utilisateur.

void SetNotSupported();

Notes

Appelez cette fonction à la place de la fonction Set de toute propriété où la modification de la valeur de propriété par l’utilisateur du contrôle n’est pas prise en charge. Un exemple serait une propriété qui est en lecture seule.

COleControl ::SetRectInContainer

Définit les coordonnées du rectangle du contrôle par rapport au conteneur, exprimées en unités d’appareil.

BOOL SetRectInContainer(LPCRECT lpRect);

Paramètres

lpRect
Pointeur vers un rectangle contenant les nouvelles coordonnées du contrôle par rapport au conteneur.

Valeur de retour

Différent de zéro si l’appel a réussi ; sinon 0.

Notes

Si le contrôle est ouvert, il est redimensionné ; sinon, la fonction du OnPosRectChanged conteneur est appelée.

COleControl ::SetText

Définit la valeur de la propriété Légende ou Texte de votre contrôle.

void SetText(LPCTSTR pszText);

Paramètres

pszText
Pointeur vers une chaîne de caractères.

Notes

Notez que les propriétés de légende et de texte stock sont mappées à la même valeur. Cela signifie que toutes les modifications apportées à l’une ou l’autre propriété modifient automatiquement les deux propriétés. En règle générale, un contrôle doit prendre en charge la propriété Légende ou Texte, mais pas les deux.

COleControl ::ThrowError

Signale l’occurrence d’une erreur dans votre contrôle.

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Paramètres

Sc
Valeur du code d’état à signaler. Pour obtenir la liste complète des codes possibles, consultez l’article Contrôles ActiveX : Rubriques avancées.

nDescriptionID
ID de ressource de chaîne de l’exception à signaler.

nHelpID
ID d’aide de la rubrique à signaler.

pszDescription
Chaîne contenant une explication de l’exception à signaler.

Notes

Cette fonction ne doit être appelée qu’à partir d’une fonction Get ou Set pour une propriété OLE, ou l’implémentation d’une méthode d’automatisation OLE. Si vous devez signaler des erreurs qui se produisent à d’autres moments, vous devez déclencher l’événement d’erreur de stock.

COleControl ::TransformCoords

Transforme les valeurs de coordonnées entre les unités HIMETRIC et les unités natives du conteneur.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Paramètres

lpptlHimetric
Pointeur vers une POINTL structure contenant des coordonnées dans des unités HIMETRIC.

lpptfContainer
Pointeur vers une POINTF structure contenant des coordonnées dans la taille d’unité du conteneur.

flags
Combinaison des valeurs suivantes :

  • XFORMCOORDS_POSITION position A dans le conteneur.

  • XFORMCOORDS_SIZE taille A dans le conteneur.

  • XFORMCOORDS_HIMETRICTOCONTAINER transformer les unités HIMETRIC en unités du conteneur.

  • XFORMCOORDS_CONTAINERTOHIMETRIC transformer les unités du conteneur en unités HIMETRIC.

Notes

Les deux premiers indicateurs, XFORMCOORDS_POSITION et XFORMCOORDS_SIZE, indiquent si les coordonnées doivent être traitées comme une position ou une taille. Les deux indicateurs restants indiquent la direction de la transformation.

COleControl ::TranslateColor

Convertit une valeur de couleur du type de données OLE_COLOR en type de données COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Paramètres

clrColor
Type de données OLE_COLOR. Pour plus d’informations, consultez la fonction Windows OleTranslateColor .

hpal
Handle vers une palette facultative ; peut être NULL.

Valeur de retour

Valeur de couleur RVB (rouge, vert, bleu) 32 bits qui définit la couleur unie la plus proche de la valeur clrColor que l’appareil peut représenter.

Notes

Cette fonction est utile pour traduire les propriétés ForeColor et BackColor en types COLORREF utilisés par les fonctions membres CDC .

COleControl ::WillAmbientsBeValidDuringLoad

Détermine si votre contrôle doit utiliser les valeurs des propriétés ambiantes comme valeurs par défaut, lorsqu’il est ensuite chargé à partir de son état persistant.

BOOL WillAmbientsBeValidDuringLoad();

Valeur de retour

Nonzero indique que les propriétés ambiantes seront valides ; sinon, les propriétés ambiantes ne sont pas valides.

Notes

Dans certains conteneurs, votre contrôle n’a peut-être pas accès à ses propriétés ambiantes pendant l’appel initial au remplacement de COleControl::DoPropExchange. C’est le cas si le conteneur appelle IPersistStreamInit ::Load ou IPersistStorage ::Load avant d’appeler IOleObject ::SetClientSite (autrement dit, s’il ne respecte pas le bit d’état OLEMISC_SETCLIENTSITEFIRST).

COleControl ::WindowProc

Fournit une procédure Windows pour un COleControl objet.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Paramètres

message
Spécifie le message Windows à traiter.

wParam
Fournit des informations supplémentaires utilisées dans le traitement du message. La valeur du paramètre dépend du message.

lParam
Fournit des informations supplémentaires utilisées dans le traitement du message. La valeur du paramètre dépend du message.

Valeur de retour

Valeur de retour du message distribué.

Notes

Appelez cette fonction pour distribuer des messages spécifiques via la carte des messages du contrôle.

Voir aussi

Exemple CIRC3 MFC
Exemple TESTHELP MFC
COlePropertyPage, classe
CWnd, classe
Graphique hiérarchique
CFontHolder, classe
CPictureHolder, classe