Contrôles ActiveX MFC : ajout de propriétés stock
Les propriétés de stock diffèrent des propriétés personnalisées dans lesquelles elles sont déjà implémentées par la classe COleControl
. COleControl
contient des fonctions membres prédéfinies qui prennent en charge les propriétés courantes du contrôle. Certaines propriétés courantes incluent les légende du contrôle et les couleurs de premier plan et d’arrière-plan. Pour plus d’informations sur les autres propriétés de stock, consultez Propriétés de stock prises en charge par l’Assistant Ajouter une propriété plus loin dans cet article. Les entrées de mappage de répartition pour les propriétés de stock sont toujours précédées de DISP_STOCKPROP.
Cet article explique comment ajouter une propriété stock (dans ce cas, Caption) à un contrôle ActiveX à l’aide de l’Assistant Ajouter une propriété et explique les modifications de code résultantes. Les sujets abordés sont les suivants :
Utilisation de l’Assistant Ajouter une propriété pour ajouter une propriété stock
Ajouter des modifications de l’Assistant Propriété pour les propriétés boursières
Propriétés stock prises en charge par l’Assistant Ajouter une propriété
-
Remarque
Les contrôles personnalisés Visual Basic ont généralement des propriétés telles que Top, Left, Width, Height, Align, Tag, Name, TabIndex, TabStop et Parent. Toutefois, les conteneurs de contrôle ActiveX sont responsables de l’implémentation de ces propriétés de contrôle. Par conséquent, les contrôles ActiveX ne doivent pas prendre en charge ces propriétés.
Utilisation de l’Assistant Ajouter une propriété pour ajouter une propriété stock
L’ajout de propriétés de stock nécessite moins de code que l’ajout de propriétés personnalisées, car la prise en charge de la propriété est gérée automatiquement par COleControl
. La procédure suivante illustre l’ajout de la propriété de légende de stock à un framework de contrôle ActiveX et peut également être utilisée pour ajouter d’autres propriétés de stock. Remplacez le nom de la propriété stock sélectionnée par Caption.
Pour ajouter la propriété de légende boursier à l’aide de l’Assistant Ajouter une propriété
Chargez votre projet de contrôle.
Dans l’Affichage de classes, développez le nœud Bibliothèque de votre contrôle.
Cliquez sur le nœud Interface de votre contrôle (le deuxième nœud du nœud Bibliothèque) pour ouvrir le menu contextuel.
Dans le menu contextuel, cliquez sur Ajouter , puis sur Ajouter une propriété.
L’Assistant Ajouter une propriété s’ouvre.
Dans la zone Nom de la propriété, cliquez sur Légende.
Cliquez sur Terminer.
Ajouter des modifications de l’Assistant Propriété pour les propriétés de stock
Étant donné que COleControl
prend en charge les propriétés de stock, l’Assistant Ajouter une propriété ne modifie pas la déclaration de classe de quelque manière que ce soit ; il ajoute la propriété à la carte de répartition. L’Assistant Ajouter une propriété ajoute la ligne suivante à la carte de répartition du contrôle, qui se trouve dans l’implémentation (. Fichier CPP) :
DISP_STOCKPROP_CAPTION()
La ligne suivante est ajoutée à la description de l’interface de votre contrôle (. Fichier IDL) :
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
Cette ligne affecte à la propriété Caption un ID spécifique. Notez que la propriété est pouvant être liée et demande l’autorisation de la base de données avant de modifier la valeur.
Cela rend la propriété Caption disponible pour les utilisateurs de votre contrôle. Pour utiliser la valeur d’une propriété stock, accédez à une variable membre ou à une fonction membre de la COleControl
classe de base. Pour plus d’informations sur ces variables membres et fonctions membres, consultez la section suivante, Propriétés de stock prises en charge par l’Assistant Ajouter une propriété.
Propriétés stock prises en charge par l’Assistant Ajouter une propriété
La COleControl
classe fournit neuf propriétés de stock. Vous pouvez ajouter les propriétés souhaitées à l’aide de l’Assistant Ajouter une propriété.
Propriété | Entrée de mappage de répartition | Comment accéder à la valeur |
---|---|---|
Appearance |
DISP_STOCKPROP_APPEARANCE( ) | Valeur accessible en tant que m_sAppearance . |
BackColor |
DISP_STOCKPROP_BACKCOLOR( ) | Valeur accessible en appelant GetBackColor . |
BorderStyle |
DISP_STOCKPROP_BORDERSTYLE( ) | Valeur accessible en tant que m_sBorderStyle . |
Caption |
DISP_STOCKPROP_CAPTION( ) | Valeur accessible en appelant InternalGetText . |
Enabled |
DISP_STOCKPROP_ENABLED( ) | Valeur accessible en tant que m_bEnabled . |
Font |
DISP_STOCKPROP_FONT( ) | Consultez l’article Contrôles ActiveX MFC : Utilisation de polices pour l’utilisation. |
ForeColor |
DISP_STOCKPROP_FORECOLOR( ) | Valeur accessible en appelant GetForeColor . |
hWnd |
DISP_STOCKPROP_HWND( ) | Valeur accessible en tant que m_hWnd . |
Text |
DISP_STOCKPROP_TEXT( ) | Valeur accessible en appelant InternalGetText . Cette propriété est la même que Caption , à l’exception du nom de la propriété. |
ReadyState |
DISP_STOCKPROP_READYSTATE() | Valeur accessible en tant que m_lReadyState ou GetReadyState |
Propriétés et notification des actions
La plupart des propriétés stock ont des fonctions de notification qui peuvent être remplacées. Par exemple, chaque fois que la BackColor
propriété est modifiée, la OnBackColorChanged
fonction (fonction membre de la classe de contrôle) est appelée. L’implémentation par défaut (en COleControl
) appelle InvalidateControl
. Remplacez cette fonction si vous souhaitez effectuer des actions supplémentaires en réponse à cette situation.
Propriétés de couleur
Vous pouvez utiliser le stock ForeColor
et BackColor
les propriétés, ou vos propres propriétés de couleur personnalisées, lors de la peinture du contrôle. Pour utiliser une propriété de couleur, appelez la fonction membre COleControl ::TranslateColor . Les paramètres de cette fonction sont la valeur de la propriété de couleur et d’un handle de palette facultatif. La valeur de retour est une valeur COLORREF qui peut être passée aux fonctions GDI, telles que SetTextColor
et CreateSolidBrush
.
Les valeurs de couleur du stock ForeColor
et BackColor
des propriétés sont accessibles en appelant respectivement la GetForeColor
fonction ou la GetBackColor
fonction.
L’exemple suivant illustre l’utilisation de ces deux propriétés de couleur lors de la peinture d’un contrôle. Il initialise une variable COLORREF temporaire et un CBrush
objet avec des appels à TranslateColor
: l’une utilisant la ForeColor
propriété et l’autre à l’aide de la BackColor
propriété. Un objet temporaire CBrush
est ensuite utilisé pour peindre le rectangle du contrôle et la couleur du texte est définie à l’aide de la ForeColor
propriété.
CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
Voir aussi
Contrôles ActiveX MFC
Contrôles ActiveX MFC : propriétés
Contrôles ActiveX MFC : méthodes
COleControl, classe