CComControlBase, classe
Cette classe fournit des méthodes pour créer et gérer des contrôles ATL.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.
Syntaxe
class ATL_NO_VTABLE CComControlBase
Membres
Typedefs publics
Nom | Description |
---|---|
CComControlBase ::AppearanceType | Remplacez si votre m_nAppearance propriété de stock n’est pas de type short . |
Constructeurs publics
Nom | Description |
---|---|
CComControlBase ::CComControlBase | Constructeur . |
CComControlBase ::~CComControlBase | Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CComControlBase ::ControlQueryInterface | Récupère un pointeur vers l'interface demandée. |
CComControlBase ::D oesVerbActivate | Vérifie que le paramètre iVerb utilisé par IOleObjectImpl::DoVerb active l’interface utilisateur du contrôle (iVerb est égal à OLEIVERB_UIACTIVATE), définit l’action effectuée lorsque l’utilisateur double-clique sur le contrôle (iVerb est égal à OLEIVERB_PRIMARY), affiche le contrôle (iVerb est égal à OLEIVERB_SHOW) ou active le contrôle (iVerb est égal à OLEIVERB_INPLACEACTIVATE). |
CComControlBase ::D oesVerbUIActivate | Vérifie que le paramètre iVerb utilisé par IOleObjectImpl::DoVerb l’interface utilisateur du contrôle est activé et retourne TRUE. |
CComControlBase ::D oVerbProperties | Affiche les pages de propriétés du contrôle. |
CComControlBase ::FireViewChange | Appelez cette méthode pour indiquer au conteneur de redessiner le contrôle ou avertir les récepteurs d’avis inscrits que la vue du contrôle a changé. |
CComControlBase ::GetAmbientAppearance | Récupère DISPID_AMBIENT_APPEARANCE, le paramètre d’apparence actuel du contrôle : 0 pour plat et 1 pour 3D. |
CComControlBase ::GetAmbientAutoClip | Récupère DISPID_AMBIENT_AUTOCLIP, un indicateur indiquant si le conteneur prend en charge la capture automatique de la zone d’affichage du contrôle. |
CComControlBase ::GetAmbientBackColor | Récupère DISPID_AMBIENT_BACKCOLOR, la couleur d’arrière-plan ambiante de tous les contrôles, définie par le conteneur. |
CComControlBase ::GetAmbientCharSet | Récupère DISPID_AMBIENT_CHARSET, le jeu de caractères ambiants pour tous les contrôles, défini par le conteneur. |
CComControlBase ::GetAmbientCodePage | Récupère DISPID_AMBIENT_CODEPAGE, le jeu de caractères ambiant pour tous les contrôles, défini par le conteneur. |
CComControlBase ::GetAmbientDisplayAsDefault | Récupère DISPID_AMBIENT_DISPLAYASDEFAULT, un indicateur qui a la valeur TRUE si le conteneur a marqué le contrôle dans ce site comme un bouton par défaut, et par conséquent, un contrôle bouton doit se dessiner lui-même avec un cadre plus épais. |
CComControlBase ::GetAmbientDisplayName | Récupère DISPID_AMBIENT_DISPLAYNAME, le nom du conteneur a été fourni au contrôle. |
CComControlBase ::GetAmbientFont | Récupère un pointeur vers l’interface ambiante IFont du conteneur. |
CComControlBase ::GetAmbientFontDisp | Récupère un pointeur vers l’interface de répartition ambiante IFontDisp du conteneur. |
CComControlBase ::GetAmbientForeColor | Récupère DISPID_AMBIENT_FORECOLOR, la couleur de premier plan ambiante pour tous les contrôles, définie par le conteneur. |
CComControlBase ::GetAmbientLocaleID | Récupère DISPID_AMBIENT_LOCALEID, l’identificateur de la langue utilisée par le conteneur. |
CComControlBase ::GetAmbientMessageReflect | Récupère DISPID_AMBIENT_MESSAGEREFLECT, indicateur indiquant si le conteneur souhaite recevoir des messages de fenêtre (tels que WM_DRAWITEM) en tant qu’événements. |
CComControlBase ::GetAmbientPalette | Récupère DISPID_AMBIENT_PALETTE, utilisé pour accéder à HPALETTE du conteneur. |
CComControlBase ::GetAmbientProperty | Récupère la propriété de conteneur spécifiée par ID. |
CComControlBase ::GetAmbientRightToLeft | Récupère DISPID_AMBIENT_RIGHTTOLEFT, la direction dans laquelle le contenu est affiché par le conteneur. |
CComControlBase ::GetAmbientScaleUnits | Récupère DISPID_AMBIENT_SCALEUNITS, les unités ambiantes du conteneur (telles que pouces ou centimètres) pour les affichages d’étiquetage. |
CComControlBase ::GetAmbientShowGrabHandles | Récupère DISPID_AMBIENT_SHOWGRABHANDLES, un indicateur indiquant si le conteneur permet au contrôle d’afficher les poignées de saisie pour elle-même lorsqu’il est actif. |
CComControlBase ::GetAmbientShowHatching | Récupère DISPID_AMBIENT_SHOWHATCHING, indicateur indiquant si le conteneur permet au contrôle de s’afficher avec un modèle haché lorsque l’interface utilisateur est active. |
CComControlBase ::GetAmbientSupportsMnemonics | Récupère DISPID_AMBIENT_SUPPORTSMNEMONICS, indicateur indiquant si le conteneur prend en charge les mnémoniques de clavier. |
CComControlBase ::GetAmbientTextAlign | Récupère DISPID_AMBIENT_TEXTALIGN, l’alignement du texte préféré par le conteneur : 0 pour l’alignement général (nombres de droite, texte gauche), 1 pour l’alignement gauche, 2 pour l’alignement central et 3 pour l’alignement droit. |
CComControlBase ::GetAmbientTopToBottom | Récupère DISPID_AMBIENT_TOPTOBOTTOM, la direction dans laquelle le contenu est affiché par le conteneur. |
CComControlBase ::GetAmbientUIDead | Récupère DISPID_AMBIENT_UIDEAD, un indicateur indiquant si le conteneur souhaite que le contrôle réponde aux actions de l’interface utilisateur. |
CComControlBase ::GetAmbientUserMode | Récupère DISPID_AMBIENT_USERMODE, un indicateur indiquant si le conteneur est en mode d’exécution (TRUE) ou en mode création (FALSE). |
CComControlBase ::GetDirty | Retourne la valeur du membre m_bRequiresSave de données . |
CComControlBase ::GetZoomInfo | Récupère les valeurs x et y du numérateur et du dénominateur du facteur de zoom pour un contrôle activé pour la modification sur place. |
CComControlBase ::InPlaceActivate | Provoque la transition du contrôle de l’état inactif vers l’état inactif indiqué par le verbe dans iVerb . |
CComControlBase ::InternalGetSite | Appelez cette méthode pour interroger le site de contrôle d’un pointeur vers l’interface identifiée. |
CComControlBase ::OnDraw | Remplacez cette méthode pour dessiner votre contrôle. |
CComControlBase ::OnDrawAdvanced | La valeur par défaut OnDrawAdvanced prépare un contexte d’appareil normalisé pour le dessin, puis appelle la méthode de votre classe de OnDraw contrôle. |
CComControlBase ::OnKillFocus | Vérifie que le contrôle est actif sur place et a un site de contrôle valide, puis informe le conteneur que le contrôle a perdu le focus. |
CComControlBase ::OnMouseActivate | Vérifie que l’interface utilisateur est en mode utilisateur, puis active le contrôle. |
CComControlBase ::OnPaint | Prépare le conteneur pour la peinture, obtient la zone cliente du contrôle, puis appelle la méthode de la classe de OnDraw contrôle. |
CComControlBase ::OnSetFocus | Vérifie que le contrôle est actif sur place et qu’il a un site de contrôle valide, puis informe le conteneur que le contrôle a obtenu le focus. |
CComControlBase ::P reTranslateAccelerator | Remplacez cette méthode pour fournir vos propres gestionnaires d’accélérateurs de clavier. |
CComControlBase ::SendOnClose | Avertit tous les récepteurs consultatifs enregistrés auprès du titulaire du conseil que le contrôle a été fermé. |
CComControlBase ::SendOnDataChange | Avertit tous les récepteurs consultatifs inscrits auprès du titulaire du conseil que les données de contrôle ont changé. |
CComControlBase ::SendOnRename | Avertit tous les récepteurs consultatifs inscrits auprès du titulaire du conseil que le contrôle a un nouveau moniker. |
CComControlBase ::SendOnSave | Avertit tous les récepteurs consultatifs enregistrés auprès du titulaire du conseil que le contrôle a été enregistré. |
CComControlBase ::SendOnViewChange | Avertit tous les récepteurs consultatifs inscrits que la vue du contrôle a changé. |
CComControlBase ::SetControlFocus | Définit ou supprime le focus clavier sur ou à partir du contrôle. |
CComControlBase ::SetDirty | Définit le membre m_bRequiresSave de données sur la valeur dans bDirty. |
Membres de données publics
Nom | Description |
---|---|
CComControlBase ::m_bAutoSize | Indicateur indiquant que le contrôle ne peut pas être d’une autre taille. |
CComControlBase ::m_bDrawFromNatural | Indicateur indiquant que IDataObjectImpl::GetData et doit définir la taille du contrôle à partir de celle de m_sizeNatural m_sizeExtent .CComControlBase::GetZoomInfo |
CComControlBase ::m_bDrawGetDataInHimetric | Indicateur indiquant qu’il IDataObjectImpl::GetData doit utiliser des unités HIMETRIC et non des pixels lors du dessin. |
CComControlBase ::m_bInPlaceActive | Indicateur indiquant que le contrôle est actif sur place. |
CComControlBase ::m_bInPlaceSiteEx | Indicateur indiquant que le conteneur prend en charge les IOleInPlaceSiteEx fonctionnalités d’interface et de contrôle OCX96, telles que les contrôles sans fenêtre et sans scintillement. |
CComControlBase ::m_bNegotiatedWnd | Indicateur indiquant si le contrôle a négocié avec le conteneur la prise en charge des fonctionnalités de contrôle OCX96 (telles que les contrôles sans scintillement et sans fenêtre) et si le contrôle est fenêtré ou sans fenêtre. |
CComControlBase ::m_bRecomposeOnResize | Indicateur indiquant que le contrôle souhaite recompiler sa présentation lorsque le conteneur modifie la taille d’affichage du contrôle. |
CComControlBase ::m_bRequiresSave | Indicateur indiquant que le contrôle a changé depuis son dernier enregistrement. |
CComControlBase ::m_bResizeNatural | Indicateur indiquant que le contrôle souhaite redimensionner son étendue naturelle (sa taille physique non mise à l’échelle) lorsque le conteneur modifie la taille d’affichage du contrôle. |
CComControlBase ::m_bUIActive | Indicateur indiquant l’interface utilisateur du contrôle, comme les menus et les barres d’outils, est actif. |
CComControlBase ::m_bUsingWindowRgn | Indicateur indiquant que le contrôle utilise la région de fenêtre fournie par le conteneur. |
CComControlBase ::m_bWasOnceWindowless | Indicateur indiquant que le contrôle a été sans fenêtre, mais peut ou non être sans fenêtre maintenant. |
CComControlBase ::m_bWindowOnly | Indicateur indiquant que le contrôle doit être fenêtré, même si le conteneur prend en charge les contrôles sans fenêtre. |
CComControlBase ::m_bWndLess | Indicateur indiquant que le contrôle est sans fenêtre. |
CComControlBase ::m_hWndCD | Contient une référence au handle de fenêtre associé au contrôle. |
CComControlBase ::m_nFreezeEvents | Nombre de fois où le conteneur a gelé des événements (refusé d’accepter des événements) sans le dégel des événements intermédiaires (acceptation des événements). |
CComControlBase ::m_rcPos | Position en pixels du contrôle, exprimée dans les coordonnées du conteneur. |
CComControlBase ::m_sizeExtent | L’étendue du contrôle en unités HIMETRIC (chaque unité est de 0,01 millimètre) pour un affichage particulier. |
CComControlBase ::m_sizeNatural | Taille physique du contrôle en unités HIMETRIC (chaque unité est de 0,01 millimètre). |
CComControlBase ::m_spAdviseSink | Pointeur direct vers la connexion de conseil sur le conteneur (IAdviseSink du conteneur). |
CComControlBase ::m_spAmbientDispatch | Objet CComDispatchDriver qui vous permet de récupérer et de définir les propriétés du conteneur via un IDispatch pointeur. |
CComControlBase ::m_spClientSite | Pointeur vers le site client du contrôle dans le conteneur. |
CComControlBase ::m_spDataAdviseHolder | Fournit un moyen standard de conserver des connexions d’avis entre les objets de données et les récepteurs d’avis. |
CComControlBase ::m_spInPlaceSite | Pointeur vers le pointeur d’interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless du conteneur. |
CComControlBase ::m_spOleAdviseHolder | Fournit une implémentation standard d’un moyen de conserver des connexions de conseil. |
Notes
Cette classe fournit des méthodes pour créer et gérer des contrôles ATL. La classe CComControl dérive de CComControlBase
. Lorsque vous créez un contrôle Standard ou DHTML à l’aide de l’Assistant Contrôle ATL, l’Assistant dérive automatiquement votre classe de CComControlBase
.
Pour plus d’informations sur la création d’un contrôle, consultez le didacticiel ATL. Pour plus d’informations sur l’Assistant Projet ATL, consultez l’article Création d’un projet ATL.
Spécifications
En-tête : atlctl.h
CComControlBase ::AppearanceType
Remplacez si votre m_nAppearance
propriété de stock n’est pas de type short
.
typedef short AppearanceType;
Notes
L’Assistant Contrôle ATL ajoute m_nAppearance
la propriété stock de type court. Remplacez AppearanceType
si vous utilisez un autre type de données.
CComControlBase ::CComControlBase
Constructeur .
CComControlBase(HWND& h);
Paramètres
h
Handle de la fenêtre associée au contrôle.
Notes
Initialise la taille du contrôle à 5080X5080 UNITÉS HIMETRIC (2"X2 ») et initialise les valeurs membres de CComControlBase
données sur NULL ou FALSE.
CComControlBase ::~CComControlBase
Destructeur.
~CComControlBase();
Notes
Si le contrôle est fenêtré, ~CComControlBase
le détruit en appelant DestroyWindow.
CComControlBase ::ControlQueryInterface
Récupère un pointeur vers l'interface demandée.
virtual HRESULT ControlQueryInterface(const IID& iid,
void** ppv);
Paramètres
iid
GUID de l’interface demandée.
ppv
Pointeur vers le pointeur d’interface identifié par iid ou NULL si l’interface est introuvable.
Notes
Gère uniquement les interfaces dans la table de mappage COM.
Exemple
// Retrieve the control's IOleObject interface. Note interface
// is automatically released when pOleObject goes out of scope
CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);
CComControlBase ::D oesVerbActivate
Vérifie que le paramètre iVerb utilisé par IOleObjectImpl::DoVerb
active l’interface utilisateur du contrôle (iVerb est égal à OLEIVERB_UIACTIVATE), définit l’action effectuée lorsque l’utilisateur double-clique sur le contrôle (iVerb est égal à OLEIVERB_PRIMARY), affiche le contrôle (iVerb est égal à OLEIVERB_SHOW) ou active le contrôle (iVerb est égal à OLEIVERB_INPLACEACTIVATE).
BOOL DoesVerbActivate(LONG iVerb);
Paramètres
iVerb
Valeur indiquant l’action à effectuer par DoVerb
.
Valeur de retour
Retourne TRUE si iVerb est égal à OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW ou OLEIVERB_INPLACEACTIVATE ; sinon, retourne FALSE.
Notes
Vous pouvez remplacer cette méthode pour définir votre propre verbe d’activation.
CComControlBase ::D oesVerbUIActivate
Vérifie que le paramètre iVerb utilisé par IOleObjectImpl::DoVerb
l’interface utilisateur du contrôle est activé et retourne TRUE.
BOOL DoesVerbUIActivate(LONG iVerb);
Paramètres
iVerb
Valeur indiquant l’action à effectuer par DoVerb
.
Valeur de retour
Retourne TRUE si iVerb est égal à OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW ou OLEIVERB_INPLACEACTIVATE. Sinon, la méthode retourne FALSE.
CComControlBase ::D oVerbProperties
Affiche les pages de propriétés du contrôle.
HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);
Paramètres
prcPosRec
Réservé.
hwndParent
Handle de la fenêtre contenant le contrôle.
Valeur de retour
Une des valeurs HRESULT standard.
Exemple
// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/,
LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
DoVerbProperties(NULL, ::GetActiveWindow());
return 0L;
}
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
CComControlBase ::FireViewChange
Appelez cette méthode pour indiquer au conteneur de redessiner le contrôle ou avertir les récepteurs d’avis inscrits que la vue du contrôle a changé.
HRESULT FireViewChange();
Valeur de retour
Une des valeurs HRESULT standard.
Notes
Si le contrôle est actif (le membre de données de la classe de contrôle CComControlBase ::m_bInPlaceActive a la valeur TRUE), avertit le conteneur que vous souhaitez redessiner l’intégralité du contrôle. Si le contrôle est inactif, avertit les récepteurs d’avis enregistrés du contrôle (par le biais du membre de données de la classe de contrôle CComControlBase ::m_spAdviseSink) que la vue du contrôle a changé.
Exemple
STDMETHODIMP CMyControl::put_Shape(int newVal)
{
// store newVal in m_nShape user-defined member
m_nShape = newVal;
// notify container to redraw control
FireViewChange();
return S_OK;
}
CComControlBase ::GetAmbientAppearance
Récupère DISPID_AMBIENT_APPEARANCE, le paramètre d’apparence actuel du contrôle : 0 pour plat et 1 pour 3D.
HRESULT GetAmbientAppearance(short& nAppearance);
Paramètres
nAppearance
Propriété DISPID_AMBIENT_APPEARANCE.
Valeur de retour
Une des valeurs HRESULT standard.
Exemple
HRESULT OnDraw(ATL_DRAWINFO& di)
{
short nAppearance;
RECT& rc = *(RECT*)di.prcBounds;
// draw 3D border if AmbientAppearance is not supported or is set to 1
HRESULT hr = GetAmbientAppearance(nAppearance);
if (hr != S_OK || nAppearance==1)
{
DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
}
else
{
Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
}
SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T("ATL 8.0 : MyControl");
// For security reasons, we recommend that you use the lstrlen function
// with caution. Here, we can guarantee that pszText is NULL terminated,
// and therefore it is safe to use this function.
TextOut(di.hdcDraw,
(rc.left + rc.right) / 2,
(rc.top + rc.bottom) / 2,
pszText,
lstrlen(pszText));
return S_OK;
}
CComControlBase ::GetAmbientAutoClip
Récupère DISPID_AMBIENT_AUTOCLIP, un indicateur indiquant si le conteneur prend en charge la capture automatique de la zone d’affichage du contrôle.
HRESULT GetAmbientAutoClip(BOOL& bAutoClip);
Paramètres
bAutoClip
La propriété DISPID_AMBIENT_AUTOCLIP.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientBackColor
Récupère DISPID_AMBIENT_BACKCOLOR, la couleur d’arrière-plan ambiante de tous les contrôles, définie par le conteneur.
HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);
Paramètres
BackColor
La propriété DISPID_AMBIENT_BACKCOLOR.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientCharSet
Récupère DISPID_AMBIENT_CHARSET, le jeu de caractères ambiants pour tous les contrôles, défini par le conteneur.
HRESULT GetAmbientCharSet(BSTR& bstrCharSet);
Paramètres
bstrCharSet
Propriété DISPID_AMBIENT_CHARSET.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CComControlBase ::GetAmbientCodePage
Récupère DISPID_AMBIENT_CODEPAGE, la page de codes ambiante pour tous les contrôles, définie par le conteneur.
HRESULT GetAmbientCodePage(ULONG& ulCodePage);
Paramètres
ulCodePage
Propriété DISPID_AMBIENT_CODEPAGE.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CComControlBase ::GetAmbientDisplayAsDefault
Récupère DISPID_AMBIENT_DISPLAYASDEFAULT, un indicateur qui a la valeur TRUE si le conteneur a marqué le contrôle dans ce site comme un bouton par défaut, et par conséquent, un contrôle bouton doit se dessiner lui-même avec un cadre plus épais.
HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);
Paramètres
bDisplayAsDefault
La propriété DISPID_AMBIENT_DISPLAYASDEFAULT.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientDisplayName
Récupère DISPID_AMBIENT_DISPLAYNAME, le nom du conteneur a été fourni au contrôle.
HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);
Paramètres
bstrDisplayName
La propriété DISPID_AMBIENT_DISPLAYNAME.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientFont
Récupère un pointeur vers l’interface ambiante IFont
du conteneur.
HRESULT GetAmbientFont(IFont** ppFont);
Paramètres
ppFont
Pointeur vers l’interface IFont ambiante du conteneur.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
Si la propriété a la valeur NULL, le pointeur a la valeur NULL. Si le pointeur n’est pas NULL, l’appelant doit libérer le pointeur.
CComControlBase ::GetAmbientFontDisp
Récupère un pointeur vers l’interface de répartition ambiante IFontDisp
du conteneur.
HRESULT GetAmbientFontDisp(IFontDisp** ppFont);
Paramètres
ppFont
Pointeur vers l’interface de répartition IFontDisp ambiante du conteneur.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Si la propriété a la valeur NULL, le pointeur a la valeur NULL. Si le pointeur n’est pas NULL, l’appelant doit libérer le pointeur.
CComControlBase ::GetAmbientForeColor
Récupère DISPID_AMBIENT_FORECOLOR, la couleur de premier plan ambiante pour tous les contrôles, définie par le conteneur.
HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);
Paramètres
ForeColor
Propriété DISPID_AMBIENT_FORECOLOR.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientLocaleID
Récupère DISPID_AMBIENT_LOCALEID, l’identificateur de la langue utilisée par le conteneur.
HRESULT GetAmbientLocaleID(LCID& lcid);
Paramètres
lcid
Propriété DISPID_AMBIENT_LOCALEID.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
Le contrôle peut utiliser cet identificateur pour adapter son interface utilisateur à différentes langues.
CComControlBase ::GetAmbientMessageReflect
Récupère DISPID_AMBIENT_MESSAGEREFLECT, un indicateur indiquant si le conteneur souhaite recevoir des messages de fenêtre (par exemple) en tant qu’événements WM_DRAWITEM
.
HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);
Paramètres
bMessageReflect
Propriété DISPID_AMBIENT_MESSAGEREFLECT.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientPalette
Récupère DISPID_AMBIENT_PALETTE, utilisé pour accéder à HPALETTE du conteneur.
HRESULT GetAmbientPalette(HPALETTE& hPalette);
Paramètres
hPalette
La propriété DISPID_AMBIENT_PALETTE.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientProperty
Récupère la propriété conteneur spécifiée par dispid.
HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);
Paramètres
dispid
Identificateur de la propriété conteneur à récupérer.
var
Variable à recevoir la propriété.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
ATL a fourni un ensemble de fonctions d’assistance pour récupérer des propriétés spécifiques, par exemple, CComControlBase ::GetAmbientBackColor. S’il n’existe aucune méthode appropriée disponible, utilisez GetAmbientProperty
.
CComControlBase ::GetAmbientRightToLeft
Récupère DISPID_AMBIENT_RIGHTTOLEFT, la direction dans laquelle le contenu est affiché par le conteneur.
HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);
Paramètres
bRightToLeft
La propriété DISPID_AMBIENT_RIGHTTOLEFT. Définissez la valeur TRUE si le contenu est affiché de droite à gauche, FALSE s’il est affiché de gauche à droite.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CComControlBase ::GetAmbientScaleUnits
Récupère DISPID_AMBIENT_SCALEUNITS, les unités ambiantes du conteneur (telles que pouces ou centimètres) pour les affichages d’étiquetage.
HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);
Paramètres
bstrScaleUnits
Propriété DISPID_AMBIENT_SCALEUNITS.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientShowGrabHandles
Récupère DISPID_AMBIENT_SHOWGRABHANDLES, un indicateur indiquant si le conteneur permet au contrôle d’afficher les poignées de saisie pour elle-même lorsqu’il est actif.
HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);
Paramètres
bShowGrabHandles
Propriété DISPID_AMBIENT_SHOWGRABHANDLES.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientShowHatching
Récupère DISPID_AMBIENT_SHOWHATCHING, un indicateur indiquant si le conteneur permet au contrôle de s’afficher avec un modèle haché lorsque l’interface utilisateur du contrôle est active.
HRESULT GetAmbientShowHatching(BOOL& bShowHatching);
Paramètres
bShowHatching
Propriété DISPID_AMBIENT_SHOWHATCHING.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientSupportsMnemonics
Récupère DISPID_AMBIENT_SUPPORTSMNEMONICS, indicateur indiquant si le conteneur prend en charge les mnémoniques de clavier.
HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);
Paramètres
bSupportsMnemonics
La propriété DISPID_AMBIENT_SUPPORTSMNEMONICS.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientTextAlign
Récupère DISPID_AMBIENT_TEXTALIGN, l’alignement du texte préféré par le conteneur : 0 pour l’alignement général (nombres de droite, texte gauche), 1 pour l’alignement gauche, 2 pour l’alignement central et 3 pour l’alignement droit.
HRESULT GetAmbientTextAlign(short& nTextAlign);
Paramètres
nTextAlign
Propriété DISPID_AMBIENT_TEXTALIGN.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetAmbientTopToBottom
Récupère DISPID_AMBIENT_TOPTOBOTTOM, la direction dans laquelle le contenu est affiché par le conteneur.
HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);
Paramètres
bTopToBottom
Propriété DISPID_AMBIENT_TOPTOBOTTOM. Définissez la valeur TRUE si le texte est affiché en haut en bas, FALSE s’il est affiché en bas en haut.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CComControlBase ::GetAmbientUIDead
Récupère DISPID_AMBIENT_UIDEAD, un indicateur indiquant si le conteneur souhaite que le contrôle réponde aux actions de l’interface utilisateur.
HRESULT GetAmbientUIDead(BOOL& bUIDead);
Paramètres
bUIDead
La propriété DISPID_AMBIENT_UIDEAD.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
Si la valeur est TRUE, le contrôle ne doit pas répondre. Cet indicateur s’applique indépendamment de l’indicateur de DISPID_AMBIENT_USERMODE. Consultez CComControlBase ::GetAmbientUserMode.
CComControlBase ::GetAmbientUserMode
Récupère DISPID_AMBIENT_USERMODE, un indicateur indiquant si le conteneur est en mode d’exécution (TRUE) ou en mode création (FALSE).
HRESULT GetAmbientUserMode(BOOL& bUserMode);
Paramètres
bUserMode
Propriété DISPID_AMBIENT_USERMODE.
Valeur de retour
Une des valeurs HRESULT standard.
CComControlBase ::GetDirty
Retourne la valeur du membre m_bRequiresSave
de données .
BOOL GetDirty();
Valeur de retour
Retourne la valeur du membre de données m_bRequiresSave.
Notes
Cette valeur est définie à l’aide de CComControlBase ::SetDirty.
CComControlBase ::GetZoomInfo
Récupère les valeurs x et y du numérateur et du dénominateur du facteur de zoom pour un contrôle activé pour la modification sur place.
void GetZoomInfo(ATL_DRAWINFO& di);
Paramètres
di
Structure qui contiendra le numérateur et le dénominateur du facteur de zoom. Pour plus d’informations, consultez ATL_DRAWINFO.
Notes
Le facteur de zoom est la proportion de la taille naturelle du contrôle dans son étendue actuelle.
CComControlBase ::InPlaceActivate
Provoque la transition du contrôle de l’état inactif vers l’état inactif indiqué par le verbe dans iVerb .
HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);
Paramètres
iVerb
Valeur indiquant l’action à effectuer par IOleObjectImpl ::D oVerb.
prcPosRect
Pointeur vers la position du contrôle sur place.
Valeur de retour
Une des valeurs HRESULT standard.
Notes
Avant l’activation, cette méthode vérifie que le contrôle a un site client, vérifie la quantité du contrôle visible et obtient l’emplacement du contrôle dans la fenêtre parente. Une fois le contrôle activé, cette méthode active l’interface utilisateur du contrôle et indique au conteneur de rendre le contrôle visible.
Cette méthode récupère également un pointeur d’interface ou un IOleInPlaceSite
pointeur IOleInPlaceSiteEx
d’interface pour le contrôle et le stocke dans le membre de données de la classe de contrôle CComControlBase ::m_spInPlaceSite.IOleInPlaceSiteWindowless
Les membres de données de la classe de contrôle CComControlBase ::m_bInPlaceSiteEx, CComControlBase ::m_bWndLess, CComControlBase ::m_bWasOnceWindowless et CComControlBase ::m_bNegotiatedWnd sont définis sur true selon les besoins.
CComControlBase ::InternalGetSite
Appelez cette méthode pour interroger le site de contrôle d’un pointeur vers l’interface identifiée.
HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);
Paramètres
riid
IID du pointeur d’interface qui doit être retourné dans ppUnkSite.
ppUnkSite
Adresse de la variable de pointeur qui reçoit le pointeur d’interface demandé dans riid.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Si le site prend en charge l’interface demandée dans riid, le pointeur est retourné par le biais de ppUnkSite. Sinon, ppUnkSite a la valeur NULL.
CComControlBase ::m_bAutoSize
Indicateur indiquant que le contrôle ne peut pas être d’une autre taille.
unsigned m_bAutoSize:1;
Notes
Cet indicateur est vérifié IOleObjectImpl::SetExtent
et, s’il a la valeur TRUE, la fonction retourne E_FAIL.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Si vous ajoutez l’option Taille automatique sous l’onglet Propriétés stock de l’Assistant Contrôle ATL, l’Assistant crée automatiquement ce membre de données dans votre classe de contrôle, crée des méthodes put et get pour la propriété et prend en charge IPropertyNotifySink pour notifier automatiquement le conteneur lorsque la propriété change.
CComControlBase ::m_bDrawFromNatural
Indicateur indiquant que IDataObjectImpl::GetData
et doit définir la taille du contrôle à partir de celle de m_sizeNatural
m_sizeExtent
.CComControlBase::GetZoomInfo
unsigned m_bDrawFromNatural:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bDrawGetDataInHimetric
Indicateur indiquant qu’il IDataObjectImpl::GetData
doit utiliser des unités HIMETRIC et non des pixels lors du dessin.
unsigned m_bDrawGetDataInHimetric:1;
Notes
Chaque unité HIMETRIC logique est de 0,01 millimètre.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bInPlaceActive
Indicateur indiquant que le contrôle est actif sur place.
unsigned m_bInPlaceActive:1;
Notes
Cela signifie que le contrôle est visible et que sa fenêtre, le cas échéant, est visible, mais ses menus et barres d’outils peuvent ne pas être actifs. L’indicateur m_bUIActive
indique que l’interface utilisateur du contrôle, telle que les menus, est également active.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bInPlaceSiteEx
Indicateur indiquant que le conteneur prend en charge les IOleInPlaceSiteEx
fonctionnalités d’interface et de contrôle OCX96, telles que les contrôles sans fenêtre et sans scintillement.
unsigned m_bInPlaceSiteEx:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Le membre m_spInPlaceSite
de données pointe vers une interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless , en fonction de la m_bWndLess
m_bInPlaceSiteEx
valeur et des indicateurs. (Le membre m_bNegotiatedWnd
de données doit être TRUE pour que le m_spInPlaceSite
pointeur soit valide.)
Si m_bWndLess
la valeur est FALSE et m_bInPlaceSiteEx
est TRUE, m_spInPlaceSite
il s’agit d’un pointeur d’interface IOleInPlaceSiteEx
. Consultez m_spInPlaceSite pour obtenir une table montrant la relation entre ces trois membres de données.
CComControlBase ::m_bNegotiatedWnd
Indicateur indiquant si le contrôle a négocié avec le conteneur la prise en charge des fonctionnalités de contrôle OCX96 (telles que les contrôles sans scintillement et sans fenêtre) et si le contrôle est fenêtré ou sans fenêtre.
unsigned m_bNegotiatedWnd:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
L’indicateur m_bNegotiatedWnd
doit être TRUE pour que le m_spInPlaceSite
pointeur soit valide.
CComControlBase ::m_bRecomposeOnResize
Indicateur indiquant que le contrôle souhaite recompiler sa présentation lorsque le conteneur modifie la taille d’affichage du contrôle.
unsigned m_bRecomposeOnResize:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Cet indicateur est vérifié par IOleObjectImpl ::SetExtent et, si TRUE, SetExtent
avertit le conteneur des modifications d’affichage. si cet indicateur est défini, le bit OLEMISC_RECOMPOSEONRESIZE dans l’énumération OLEMISC doit également être défini.
CComControlBase ::m_bRequiresSave
Indicateur indiquant que le contrôle a changé depuis son dernier enregistrement.
unsigned m_bRequiresSave:1;
Notes
La valeur de m_bRequiresSave
peut être définie avec CComControlBase ::SetDirty et récupérée avec CComControlBase ::GetDirty.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bResizeNatural
Indicateur indiquant que le contrôle souhaite redimensionner son étendue naturelle (sa taille physique non mise à l’échelle) lorsque le conteneur modifie la taille d’affichage du contrôle.
unsigned m_bResizeNatural:1;
Notes
Cet indicateur est vérifié IOleObjectImpl::SetExtent
et, si TRUE, la taille passée SetExtent
est affectée à m_sizeNatural
.
La taille passée SetExtent
est toujours affectée à m_sizeExtent
, quelle que soit la valeur de m_bResizeNatural
.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bUIActive
Indicateur indiquant l’interface utilisateur du contrôle, comme les menus et les barres d’outils, est actif.
unsigned m_bUIActive:1;
Notes
L’indicateur m_bInPlaceActive
indique que le contrôle est actif, mais pas que son interface utilisateur est active.
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bUsingWindowRgn
Indicateur indiquant que le contrôle utilise la région de fenêtre fournie par le conteneur.
unsigned m_bUsingWindowRgn:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bWasOnceWindowless
Indicateur indiquant que le contrôle a été sans fenêtre, mais peut ou non être sans fenêtre maintenant.
unsigned m_bWasOnceWindowless:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bWindowOnly
Indicateur indiquant que le contrôle doit être fenêtré, même si le conteneur prend en charge les contrôles sans fenêtre.
unsigned m_bWindowOnly:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_bWndLess
Indicateur indiquant que le contrôle est sans fenêtre.
unsigned m_bWndLess:1;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Le membre m_spInPlaceSite
de données pointe vers une interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless , selon la valeur des m_bWndLess
indicateurs CComControlBase ::m_bInPlaceSiteEx . (Membre de données CComControlBase ::m_bNegotiatedWnd doit être TRUE pour que le pointeur CComControlBase ::m_spInPlaceSite soit valide.)
Si m_bWndLess
la valeur est TRUE, m_spInPlaceSite
est un pointeur d’interface IOleInPlaceSiteWindowless
. Consultez CComControlBase ::m_spInPlaceSite pour une table montrant la relation complète entre ces membres de données.
CComControlBase ::m_hWndCD
Contient une référence au handle de fenêtre associé au contrôle.
HWND& m_hWndCD;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_nFreezeEvents
Nombre de fois où le conteneur a gelé des événements (refusé d’accepter des événements) sans le dégel des événements intermédiaires (acceptation des événements).
short m_nFreezeEvents;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_rcPos
Position en pixels du contrôle, exprimée dans les coordonnées du conteneur.
RECT m_rcPos;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_sizeExtent
L’étendue du contrôle en unités HIMETRIC (chaque unité est de 0,01 millimètre) pour un affichage particulier.
SIZE m_sizeExtent;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Cette taille est mise à l’échelle par l’affichage. La taille physique du contrôle est spécifiée dans le m_sizeNatural
membre de données et est fixe.
Vous pouvez convertir la taille en pixels avec la fonction globale AtlHiMetricToPixel.
CComControlBase ::m_sizeNatural
Taille physique du contrôle en unités HIMETRIC (chaque unité est de 0,01 millimètre).
SIZE m_sizeNatural;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Cette taille est fixe, tandis que la taille est mise à m_sizeExtent
l’échelle par l’affichage.
Vous pouvez convertir la taille en pixels avec la fonction globale AtlHiMetricToPixel.
CComControlBase ::m_spAdviseSink
Pointeur direct vers la connexion de conseil sur le conteneur (IAdviseSink du conteneur).
CComPtr<IAdviseSink>
m_spAdviseSink;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_spAmbientDispatch
Objet CComDispatchDriver
qui vous permet de récupérer et de définir les propriétés d’un objet via un IDispatch
pointeur.
CComDispatchDriver m_spAmbientDispatch;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_spClientSite
Pointeur vers le site client du contrôle dans le conteneur.
CComPtr<IOleClientSite>
m_spClientSite;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
CComControlBase ::m_spDataAdviseHolder
Fournit un moyen standard de conserver des connexions d’avis entre les objets de données et les récepteurs d’avis.
CComPtr<IDataAdviseHolder>
m_spDataAdviseHolder;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Un objet de données est un contrôle qui peut transférer des données et qui implémente IDataObject, dont les méthodes spécifient le format et le support de transfert des données.
L’interface m_spDataAdviseHolder
implémente les méthodes IDataObject ::D Advise et IDataObject ::D Unadvise pour établir et supprimer des connexions de conseil au conteneur. Le conteneur du contrôle doit implémenter un récepteur conseil en prenant en charge l’interface IAdviseSink .
CComControlBase ::m_spInPlaceSite
Pointeur vers le pointeur d’interface IOleInPlaceSite, IOleInPlaceSiteEx ou IOleInPlaceSiteWindowless du conteneur.
CComPtr<IOleInPlaceSiteWindowless>
m_spInPlaceSite;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
Le m_spInPlaceSite
pointeur est valide uniquement si l’indicateur m_bNegotiatedWnd a la valeur TRUE.
Le tableau suivant montre comment le type de m_spInPlaceSite
pointeur dépend des indicateurs de membre de données m_bWndLess et m_bInPlaceSiteEx :
type de m_spInPlaceSite | valeur m_bWndLess | valeur m_bInPlaceSiteEx |
---|---|---|
IOleInPlaceSiteWindowless |
VRAI | TRUE ou FALSE |
IOleInPlaceSiteEx |
FAUX | VRAI |
IOleInPlaceSite |
FALSE | FAUX |
CComControlBase ::m_spOleAdviseHolder
Fournit une implémentation standard d’un moyen de conserver des connexions de conseil.
CComPtr<IOleAdviseHolder>
m_spOleAdviseHolder;
Notes
Remarque
Pour utiliser ce membre de données dans votre classe de contrôle, vous devez le déclarer en tant que membre de données dans votre classe de contrôle. Votre classe de contrôle n’héritera pas de ce membre de données de la classe de base, car elle est déclarée dans une union dans la classe de base.
L’interface m_spOleAdviseHolder
implémente les méthodes IOleObject ::Advise et IOleObject ::Unadvise pour établir et supprimer des connexions de conseil au conteneur. Le conteneur du contrôle doit implémenter un récepteur conseil en prenant en charge l’interface IAdviseSink .
CComControlBase ::OnDraw
Remplacez cette méthode pour dessiner votre contrôle.
virtual HRESULT OnDraw(ATL_DRAWINFO& di);
Paramètres
di
Référence à la structure ATL_DRAWINFO qui contient des informations de dessin telles que l’aspect dessin, les limites du contrôle et si le dessin est optimisé ou non.
Valeur de retour
Valeur HRESULT standard.
Notes
La valeur par défaut OnDraw
supprime ou restaure le contexte de l’appareil ou ne fait rien, en fonction des indicateurs définis dans CComControlBase ::OnDrawAdvanced.
Une OnDraw
méthode est automatiquement ajoutée à votre classe de contrôle lorsque vous créez votre contrôle avec l’Assistant Contrôle ATL. La valeur par défaut OnDraw
de l’Assistant dessine un rectangle avec l’étiquette « ATL 8.0 ».
Exemple
Consultez l’exemple de CComControlBase ::GetAmbientAppearance.
CComControlBase ::OnDrawAdvanced
La valeur par défaut OnDrawAdvanced
prépare un contexte d’appareil normalisé pour le dessin, puis appelle la méthode de votre classe de OnDraw
contrôle.
virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
Paramètres
di
Référence à la structure ATL_DRAWINFO qui contient des informations de dessin telles que l’aspect dessin, les limites du contrôle et si le dessin est optimisé ou non.
Valeur de retour
Valeur HRESULT standard.
Notes
Remplacez cette méthode si vous souhaitez accepter le contexte de l’appareil passé par le conteneur sans le normaliser.
Pour plus d’informations, consultez CComControlBase ::OnDraw .
CComControlBase ::OnKillFocus
Vérifie que le contrôle est actif sur place et a un site de contrôle valide, puis informe le conteneur que le contrôle a perdu le focus.
LRESULT OnKillFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Paramètres
nMsg
Réservé.
wParam
Réservé.
lParam
Réservé.
bHandled
Indicateur qui indique si le message de fenêtre a été géré avec succès. La valeur par défaut est FALSE.
Valeur de retour
Retourne toujours 1.
CComControlBase ::OnMouseActivate
Vérifie que l’interface utilisateur est en mode utilisateur, puis active le contrôle.
LRESULT OnMouseActivate(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Paramètres
nMsg
Réservé.
wParam
Réservé.
lParam
Réservé.
bHandled
Indicateur qui indique si le message de fenêtre a été géré avec succès. La valeur par défaut est FALSE.
Valeur de retour
Retourne toujours 1.
CComControlBase ::OnPaint
Prépare le conteneur pour la peinture, obtient la zone cliente du contrôle, puis appelle la méthode de la classe de OnDrawAdvanced
contrôle.
LRESULT OnPaint(UINT /* nMsg */,
WPARAM wParam,
LPARAM /* lParam */,
BOOL& /* lResult */);
Paramètres
nMsg
Réservé.
wParam
HdC existant.
lParam
Réservé.
lResult
Réservé.
Valeur de retour
Retourne toujours zéro.
Notes
Si wParam n’est pas NULL, OnPaint
suppose qu’il contient un HDC valide et l’utilise au lieu de CComControlBase ::m_hWndCD.
CComControlBase ::OnSetFocus
Vérifie que le contrôle est actif sur place et qu’il a un site de contrôle valide, puis informe le conteneur que le contrôle a obtenu le focus.
LRESULT OnSetFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Paramètres
nMsg
Réservé.
wParam
Réservé.
lParam
Réservé.
bHandled
Indicateur qui indique si le message de fenêtre a été géré avec succès. La valeur par défaut est FALSE.
Valeur de retour
Retourne toujours 1.
Notes
Envoie une notification au conteneur que le contrôle a reçu le focus.
CComControlBase ::P reTranslateAccelerator
Remplacez cette méthode pour fournir vos propres gestionnaires d’accélérateurs de clavier.
BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
HRESULT& /* hRet */);
Paramètres
pMsg
Réservé.
hRet
Réservé.
Valeur de retour
Par défaut, retourne FALSE.
CComControlBase ::SendOnClose
Avertit tous les récepteurs consultatifs enregistrés auprès du titulaire du conseil que le contrôle a été fermé.
HRESULT SendOnClose();
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Envoie une notification indiquant que le contrôle a fermé ses récepteurs consultatifs.
CComControlBase ::SendOnDataChange
Avertit tous les récepteurs consultatifs inscrits auprès du titulaire du conseil que les données de contrôle ont changé.
HRESULT SendOnDataChange(DWORD advf = 0);
Paramètres
advf
Indiquez les indicateurs qui spécifient la façon dont l’appel à IAdviseSink ::OnDataChange est effectué. Les valeurs proviennent de l’énumération ADVF .
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
CComControlBase ::SendOnRename
Avertit tous les récepteurs consultatifs inscrits auprès du titulaire du conseil que le contrôle a un nouveau moniker.
HRESULT SendOnRename(IMoniker* pmk);
Paramètres
pmk
Pointeur vers le nouveau moniker du contrôle.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Envoie une notification indiquant que le moniker du contrôle a changé.
CComControlBase ::SendOnSave
Avertit tous les récepteurs consultatifs enregistrés auprès du titulaire du conseil que le contrôle a été enregistré.
HRESULT SendOnSave();
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
Envoie une notification indiquant que le contrôle vient d’enregistrer ses données.
CComControlBase ::SendOnViewChange
Avertit tous les récepteurs consultatifs inscrits que la vue du contrôle a changé.
HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);
Paramètres
dwAspect
Aspect ou vue du contrôle.
lindex
Partie de la vue qui a changé. Seul -1 est valide.
Valeur de retour
Retourne S_OK sur la réussite ou une erreur HRESULT en cas d’échec.
Notes
SendOnViewChange
appelle IAdviseSink ::OnViewChange. La seule valeur de lindex actuellement prise en charge est -1, ce qui indique que l’ensemble de la vue est intéressante.
CComControlBase ::SetControlFocus
Définit ou supprime le focus clavier sur ou à partir du contrôle.
BOOL SetControlFocus(BOOL bGrab);
Paramètres
bGrab
Si la valeur est TRUE, définit le focus clavier sur le contrôle appelant. Si la valeur est FALSE, supprime le focus clavier du contrôle appelant, à condition qu’il ait le focus.
Valeur de retour
Retourne TRUE si le contrôle reçoit correctement le focus ; sinon, FALSE.
Notes
Pour un contrôle fenêtré, la fonction d’API Windows SetFocus est appelée. Pour un contrôle sans fenêtre, IOleInPlaceSiteWindowless ::SetFocus est appelé. Grâce à cet appel, un contrôle sans fenêtre obtient le focus clavier et peut répondre aux messages de fenêtre.
CComControlBase ::SetDirty
Définit le membre m_bRequiresSave
de données sur la valeur dans bDirty.
void SetDirty(BOOL bDirty);
Paramètres
bDirty
Valeur du membre de données CComControlBase ::m_bRequiresSave.
Notes
SetDirty(TRUE)
doit être appelé pour indiquer que le contrôle a changé depuis son dernier enregistrement. La valeur de m_bRequiresSave
cette propriété est récupérée avec CComControlBase ::GetDirty.