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
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 à vérifier.
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 à cocher.
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 CRect
RECT
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 CFile
objet 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
.
bStorage
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, bStorage doit être TRUE. Si les données de pPersist sont un flux, bStorage 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_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON ou BS_3STATE. Il peut s'agir d'une des méthodes suivantes :
BST_CHECKED Bouton est activé.
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 si elle est grisée, cochée ou non.
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