Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 la 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 le projet de votre contrôle.
En mode Classe, développez le nœud de bibliothèque de votre contrôle.
Cliquez avec le bouton droit sur le nœud d’interface de votre contrôle (le deuxième nœud du nœud de 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