Partager via


COleControlContainer, classe

Agit comme un conteneur de contrôles pour les contrôles ActiveX.

Syntaxe

class COleControlContainer : public CCmdTarget

Membres

Constructeurs publics

Nom Description
COleControlContainer ::COleControlContainer Construit un objet COleControlContainer.

Méthodes publiques

Nom Description
COleControlContainer ::AttachControlSite Crée un site de contrôle, hébergé par le conteneur.
COleControlContainer ::BroadcastAmbientPropertyChange Informe tous les contrôles hébergés qu’une propriété ambiante a changé.
COleControlContainer ::CheckDlgButton Modifie le contrôle de bouton spécifié.
COleControlContainer ::CheckRadioButton Sélectionne la case d’option spécifiée d’un groupe.
COleControlContainer ::CreateControl Crée un contrôle ActiveX hébergé.
COleControlContainer ::CreateOleFont Crée une police OLE.
COleControlContainer ::FindItem Retourne le site personnalisé du contrôle spécifié.
COleControlContainer ::FreezeAllEvents Détermine si le site de contrôle accepte des événements.
COleControlContainer ::GetAmbientProp Récupère la propriété ambiante spécifiée.
COleControlContainer ::GetDlgItem Récupère le contrôle de boîte de dialogue spécifié.
COleControlContainer ::GetDlgItemInt Récupère la valeur du contrôle de boîte de dialogue spécifié.
COleControlContainer ::GetDlgItemText Récupère la légende du contrôle de boîte de dialogue spécifié.
COleControlContainer ::HandleSetFocus Détermine si le conteneur gère WM_SETFOCUS messages.
COleControlContainer ::HandleWindowlessMessage Gère les messages envoyés à un contrôle sans fenêtre.
COleControlContainer ::IsDlgButtonChecked Détermine l’état du bouton spécifié.
COleControlContainer ::OnPaint Appelé pour repeindre une partie du conteneur.
COleControlContainer ::OnUIActivate Appelé lorsqu’un contrôle est sur le point d’être activé sur place.
COleControlContainer ::OnUIDeactivate Appelé lorsqu’un contrôle est sur le point d’être désactivé.
COleControlContainer ::ScrollChildren Appelé par l’infrastructure lorsque les messages de défilement sont reçus à partir d’une fenêtre enfant.
COleControlContainer ::SendDlgItemMessage Envoie un message au contrôle spécifié.
COleControlContainer ::SetDlgItemInt Définit la valeur du contrôle spécifié.
COleControlContainer ::SetDlgItemText Définit le texte du contrôle spécifié.

Membres de données publics

Nom Description
COleControlContainer ::m_crBack Couleur d’arrière-plan du conteneur.
COleControlContainer ::m_crFore Couleur de premier plan du conteneur.
COleControlContainer ::m_listSitesOrWnds Liste des sites de contrôle pris en charge.
COleControlContainer ::m_nWindowlessControls Nombre de contrôles sans fenêtre hébergés.
COleControlContainer ::m_pOleFont Pointeur vers la police OLE du site de contrôle personnalisé.
COleControlContainer ::m_pSiteCapture Pointeur vers le site de contrôle de capture.
COleControlContainer ::m_pSiteFocus Pointeur vers le contrôle qui a actuellement le focus d’entrée.
COleControlContainer ::m_pSiteUIActive Pointeur vers le contrôle actuellement activé.
COleControlContainer ::m_pWnd Pointeur vers la fenêtre implémentant le conteneur de contrôle.
COleControlContainer ::m_siteMap Carte de site.

Notes

Pour ce faire, vous pouvez prendre en charge un ou plusieurs sites de contrôle ActiveX (implémentés par COleControlSite). COleControlContainer implémente entièrement les interfaces IOleInPlaceFrame et IOleContainer , ce qui permet aux contrôles ActiveX contenus de remplir leurs qualifications en tant qu’éléments sur place.

Généralement, cette classe est utilisée conjointement avec COccManager et COleControlSite pour implémenter un conteneur de contrôle ActiveX personnalisé, avec des sites personnalisés pour un ou plusieurs contrôles ActiveX.

Hiérarchie d'héritage

CObject

CCmdTarget

COleControlContainer

Spécifications

En-tête : afxocc.h

COleControlContainer ::AttachControlSite

Appelé par l’infrastructure pour créer et attacher un site de contrôle.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Paramètres

Pwnd
Pointeur vers un objet CWnd.

nIDC
ID du contrôle à joindre.

Notes

Remplacez cette fonction si vous souhaitez personnaliser ce processus.

Remarque

Utilisez la première forme de cette fonction si vous établissez une liaison statique à la bibliothèque MFC. Utilisez le deuxième formulaire si vous établissez une liaison dynamique à la bibliothèque MFC.

COleControlContainer ::BroadcastAmbientPropertyChange

Informe tous les contrôles hébergés qu’une propriété ambiante a changé.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Paramètres

dispid
ID de répartition de la propriété ambiante en cours de modification.

Notes

Cette fonction est appelée par l’infrastructure lorsqu’une propriété ambiante a changé de valeur. Remplacez cette fonction pour personnaliser ce comportement.

COleControlContainer ::CheckDlgButton

Modifie l’état actuel du bouton.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Paramètres

nIDButton
ID du bouton à modifier.

nCheck
Spécifie l’état du bouton. Il peut s'agir d'une des méthodes suivantes :

  • BST_CHECKED définit l’état du bouton sur case activée ed.

  • BST_INDETERMINATE Définit l’état du bouton sur grisé, indiquant un état indéterminé. Utilisez cette valeur uniquement si le bouton a le style BS_3STATE ou BS_AUTO3STATE.

  • BST_UNCHECKED Définit l’état du bouton à effacer.

COleControlContainer ::CheckRadioButton

Sélectionne une case d’option spécifiée dans un groupe et efface les boutons restants du groupe.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Paramètres

nIDFirstButton
Spécifie l’identificateur du premier bouton d’option dans le groupe.

nIDLastButton
Spécifie l’identificateur de la dernière case d’option dans le groupe.

nIDCheckButton
Spécifie l’identificateur de la case d’option à case activée.

COleControlContainer ::COleControlContainer

Construit un objet COleControlContainer.

explicit COleControlContainer(CWnd* pWnd);

Paramètres

Pwnd
Pointeur vers la fenêtre parente du conteneur de contrôle.

Notes

Une fois l’objet créé, ajoutez un site de contrôle personnalisé avec un appel à AttachControlSite.

COleControlContainer ::CreateControl

Crée un contrôle ActiveX, hébergé par l’objet spécifié COleControlSite .

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Paramètres

pWndCtrl
Pointeur vers l’objet fenêtre représentant le contrôle.

Clsid
ID de classe unique du contrôle.

lpszWindowName
Pointeur vers le texte à afficher dans le contrôle. Définit la valeur de la propriété Caption ou Text du contrôle (le cas échéant). Si la valeur EST NULL, la propriété Caption ou Text du contrôle n’est pas modifiée.

dwStyle
Styles Windows. Les styles disponibles sont répertoriés sous la section Remarques .

Rect
Spécifie la taille et la position du contrôle. Il peut s’agir d’un objet ou d’une CRectRECT structure.

nID
Spécifie l’ID de la fenêtre enfant du contrôle.

pPersist
Pointeur vers un CFile état persistant contenant le contrôle. La valeur par défaut est NULL, ce qui indique que le contrôle s’initialise sans restaurer son état à partir d’un stockage persistant. S’il n’est pas NULL, il doit s’agir d’un pointeur vers un CFileobjet dérivé qui contient les données persistantes du contrôle, sous la forme d’un flux ou d’un stockage. Ces données ont pu être enregistrées dans une activation précédente du client. Il CFile peut contenir d’autres données, mais doit avoir son pointeur en lecture-écriture défini sur le premier octet des données persistantes au moment de l’appel à CreateControl.

b Stockage
Indique si les données dans pPersist doivent être interprétées comme ou IStream comme IStorage des données. Si les données dans pPersist sont un stockage, b Stockage doit être TRUE. Si les données de pPersist sont un flux, b Stockage doit être FALSE. La valeur par défaut est FALSE.

bstrLicKey
Données de clé de licence facultatives. Ces données sont nécessaires uniquement pour créer des contrôles qui nécessitent une clé de licence au moment de l’exécution. Si le contrôle prend en charge les licences, vous devez fournir une clé de licence pour que le contrôle réussisse. La valeur par défaut est NULL.

ppNewSite
Pointeur vers le site de contrôle existant qui hébergera le contrôle en cours de création. La valeur par défaut est NULL, indiquant qu’un nouveau site de contrôle sera automatiquement créé et attaché au nouveau contrôle.

Ppt
Pointeur vers une POINT structure qui contient l’angle supérieur gauche du contrôle. La taille du contrôle est déterminée par la valeur de psize. Les valeurs ppt et psize sont une méthode facultative de spécification de la taille et de la position du contrôle.

Psize
Pointeur vers une SIZE structure qui contient la taille du contrôle. Le coin supérieur gauche est déterminé par la valeur de ppt. Les valeurs ppt et psize sont une méthode facultative de spécification de la taille et de la position du contrôle.

Valeur de retour

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

Notes

Seuls un sous-ensemble des indicateurs Windows dwStyle sont pris en charge par CreateControl:

  • WS_VISIBLE Crée une fenêtre qui est initialement visible. Obligatoire si vous souhaitez que le contrôle soit visible immédiatement, comme les fenêtres ordinaires.

  • WS_DISABLED Crée une fenêtre initialement désactivée. Une fenêtre désactivée ne peut pas recevoir d’entrée de l’utilisateur. Peut être défini si le contrôle a une propriété Enabled.

  • WS_BORDER Crée une fenêtre avec une bordure de ligne mince. Peut être défini si le contrôle a une propriété BorderStyle.

  • WS_GROUP Spécifie le premier contrôle d’un groupe de contrôles. L’utilisateur peut changer le focus clavier d’un contrôle du groupe à l’autre en utilisant les touches de direction. Tous les contrôles définis avec le style WS_GROUP après le premier contrôle appartiennent au même groupe. Le contrôle suivant avec le style WS_GROUP met fin au groupe et démarre le groupe suivant.

  • WS_TABSTOP Spécifie un contrôle qui peut recevoir le focus clavier lorsque l’utilisateur appuie sur la touche TAB. Appuyez sur tabulation pour modifier le focus clavier sur le contrôle suivant du style WS_TABSTOP.

Utilisez la deuxième surcharge pour créer des contrôles de taille par défaut.

COleControlContainer ::CreateOleFont

Crée une police OLE.

void CreateOleFont(CFont* pFont);

Paramètres

pFont
Pointeur vers la police à utiliser par le conteneur de contrôle.

COleControlContainer ::FindItem

Recherche le site personnalisé qui héberge l’élément spécifié.

virtual COleControlSite* FindItem(UINT nID) const;

Paramètres

nID
Identificateur de l’élément à trouver.

Valeur de retour

Pointeur vers le site personnalisé de l’élément spécifié.

COleControlContainer ::FreezeAllEvents

Détermine si le conteneur ignore les événements des sites de contrôle attachés ou les accepte.

void FreezeAllEvents(BOOL bFreeze);

Paramètres

bFreeze
Différent de zéro si les événements seront traités ; sinon 0.

Notes

Remarque

Le contrôle n’est pas nécessaire pour arrêter le déclenchement d’événements s’il est demandé par le conteneur de contrôle. Il peut continuer à déclencher, mais tous les événements suivants seront ignorés par le conteneur de contrôle.

COleControlContainer ::GetAmbientProp

Récupère la valeur d’une propriété ambiante spécifiée.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Paramètres

pSite
Pointeur vers un site de contrôle à partir duquel la propriété ambiante sera récupérée.

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

pVarResult
Pointeur vers la valeur de la propriété ambiante.

Valeur de retour

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

COleControlContainer ::GetDlgItem

Récupère un pointeur vers le contrôle ou la fenêtre enfant spécifié dans une boîte de dialogue ou une autre fenêtre.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Paramètres

nID
Identificateur de l’élément de boîte de dialogue à récupérer.

phWnd
Pointeur vers le handle de l’objet fenêtre de l’élément de boîte de dialogue spécifié.

Valeur de retour

Pointeur vers la fenêtre de l’élément de boîte de dialogue.

COleControlContainer ::GetDlgItemInt

Récupère la valeur du texte traduit du contrôle donné.

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Paramètres

nID
Identificateur du contrôle.

lpTrans
Pointeur vers une variable booléenne qui reçoit une valeur de réussite/d’échec de fonction (TRUE indique la réussite, FALSE indique l’échec).

bSigned
Spécifie si la fonction doit examiner le texte d’un signe moins au début et retourner une valeur entière signée si elle en trouve une. Si le paramètre bSigned a la valeur TRUE, en spécifiant que la valeur à récupérer est une valeur entière signée, convertissez la valeur de retour en typeint. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Valeur de retour

Si elle réussit, la variable pointée par lpTrans a la valeur TRUE et la valeur de retour est la valeur traduite du texte du contrôle.

Si la fonction échoue, la variable pointée par lpTrans a la valeur FALSE et la valeur de retour est égale à zéro. Notez que, étant donné que zéro est une valeur traduite possible, une valeur de retour de zéro n’indique pas elle-même l’échec.

Si lpTrans a la valeur NULL, la fonction ne retourne aucune information sur la réussite ou l’échec.

Notes

La fonction traduit le texte récupéré en supprimant les espaces supplémentaires au début du texte, puis en convertissant les chiffres décimaux. La fonction cesse de traduire lorsqu’elle atteint la fin du texte ou rencontre un caractère non numérique.

Cette fonction retourne zéro si la valeur traduite est supérieure à INT_MAX (pour les nombres signés) ou UINT_MAX (pour les nombres non signés).

COleControlContainer ::GetDlgItemText

Récupère le texte du contrôle donné.

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Paramètres

nID
Identificateur du contrôle.

lpStr
Pointeur vers le texte du contrôle.

nMaxCount
Spécifie la longueur maximale, en caractères, de la chaîne à copier dans la mémoire tampon pointée par lpStr. Si la longueur de la chaîne dépasse la limite, la chaîne est tronquée.

Valeur de retour

Si la fonction réussit, la valeur de retour spécifie le nombre de caractères copiés dans la mémoire tampon, sans inclure le caractère null de fin.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

COleControlContainer ::HandleSetFocus

Détermine si le conteneur gère WM_SETFOCUS messages.

virtual BOOL HandleSetFocus();

Valeur de retour

Différent de zéro si le conteneur gère les messages WM_SETFOCUS ; sinon zéro.

COleControlContainer ::HandleWindowlessMessage

Traite les messages de fenêtre pour les contrôles sans fenêtre.

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Paramètres

message
Identificateur du message de fenêtre fourni par Windows.

wParam
Paramètre du message ; fourni 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 de message .

lParam
Paramètre du message ; fourni 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 de message .

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 en cas de réussite ; sinon, zéro.

Notes

Remplacez cette fonction pour personnaliser la gestion des messages de contrôle sans fenêtre.

COleControlContainer ::IsDlgButtonChecked

Détermine l’état du bouton spécifié.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Paramètres

nIDButton
Identificateur du contrôle bouton.

Valeur de retour

Valeur de retour, à partir d’un bouton créé avec le style BS_AUTOCHECKo OX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKo OX, BS_RADIOBUTTON ou BS_3STATE. Il peut s'agir d'une des méthodes suivantes :

  • BST_CHECKED Bouton est case activée ed.

  • BST_INDETERMINATE Bouton est grisé, indiquant un état indéterminé (s’applique uniquement si le bouton a le style BS_3STATE ou BS_AUTO3STATE).

  • BST_UNCHECKED Bouton est effacé.

Notes

Si le bouton est un contrôle à trois états, la fonction membre détermine s’il est grisé, case activée ou aucun des deux.

COleControlContainer ::m_crBack

Couleur d’arrière-plan du conteneur.

COLORREF m_crBack;

COleControlContainer ::m_crFore

Couleur de premier plan du conteneur.

COLORREF m_crFore;

COleControlContainer ::m_listSitesOrWnds

Liste des sites de contrôle hébergés par le conteneur.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer ::m_nWindowlessControls

Nombre de contrôles sans fenêtre hébergés par le conteneur de contrôle.

int m_nWindowlessControls;

COleControlContainer ::m_pOleFont

Pointeur vers la police OLE du site de contrôle personnalisé.

LPFONTDISP m_pOleFont;

COleControlContainer ::m_pSiteCapture

Pointeur vers le site de contrôle de capture.

COleControlSite* m_pSiteCapture;

COleControlContainer ::m_pSiteFocus

Pointeur vers le site de contrôle qui a actuellement le focus d’entrée.

COleControlSite* m_pSiteFocus;

COleControlContainer ::m_pSiteUIActive

Pointeur vers le site de contrôle activé sur place.

COleControlSite* m_pSiteUIActive;

COleControlContainer ::m_pWnd

Pointeur vers l’objet de fenêtre associé au conteneur.

CWnd* m_pWnd;

COleControlContainer ::m_siteMap

Carte de site.

CMapPtrToPtr m_siteMap;

COleControlContainer ::OnPaint

Appelé par l’infrastructure pour gérer les requêtes WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Paramètres

pDC
Pointeur vers le contexte d’appareil utilisé par le conteneur.

Valeur de retour

Différent de zéro si le message a été géré ; sinon zéro.

Notes

Remplacez cette fonction pour personnaliser le processus de peinture.

COleControlContainer ::OnUIActivate

Appelé par l’infrastructure lorsque le site de contrôle, pointé par pSite, est sur le point d’être activé sur place.

virtual void OnUIActivate(COleControlSite* pSite);

Paramètres

pSite
Pointeur vers le site de contrôle sur le point d’être activé sur place.

Notes

L’activation sur place signifie que le menu principal du conteneur est remplacé par un menu composite sur place.

COleControlContainer ::OnUIDeactivate

Appelé par l’infrastructure lorsque le site de contrôle, pointé par pSite, est sur le point d’être désactivé.

virtual void OnUIDeactivate(COleControlSite* pSite);

Paramètres

pSite
Pointeur vers le site de contrôle sur le point d’être désactivé.

Notes

Lorsque cette notification est reçue, le conteneur doit réinstaller son interface utilisateur et prendre le focus.

COleControlContainer ::ScrollChildren

Appelé par l’infrastructure lorsque les messages de défilement sont reçus à partir d’une fenêtre enfant.

virtual void ScrollChildren(
    int dx,
    int dy);

Paramètres

Dx
Quantité, en pixels, de défilement le long de l’axe x.

dy
Quantité, en pixels, de défilement le long de l’axe y.

COleControlContainer ::SendDlgItemMessage

Envoie un message au contrôle spécifié.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Paramètres

nID
Spécifie l’identificateur du contrôle qui reçoit le message.

message
Spécifie le message à envoyer.

wParam
Spécifie des informations supplémentaires spécifiques aux messages.

lParam
Spécifie des informations supplémentaires spécifiques aux messages.

COleControlContainer ::SetDlgItemInt

Définit le texte d’un contrôle dans une boîte de dialogue sur la représentation sous forme de chaîne d’une valeur entière spécifiée.

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Paramètres

nID
Identificateur du contrôle.

nValue
Valeur entière à afficher.

bSigned
Spécifie si le paramètre nValue est signé ou non signé. Si ce paramètre a la valeur TRUE, nValue est signé. Si ce paramètre a la valeur TRUE et nValue est inférieur à zéro, un signe moins est placé avant le premier chiffre de la chaîne. Si ce paramètre a la valeur FALSE, nValue n’est pas signé.

COleControlContainer ::SetDlgItemText

Définit le texte du contrôle spécifié, à l’aide du texte contenu dans lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Paramètres

nID
Identificateur du contrôle.

lpszString
Pointeur vers le texte du contrôle.

Voir aussi

CCmdTarget, classe
Graphique hiérarchique
COleControlSite, classe
COccManager, classe