Partager via


Contrôles ActiveX MFC : Ajout de propriétés stock

Les propriétés stock diffèrent des propriétés personnalisées du fait qu'elles sont déjà implémentées par la classe COleControl.COleControl contient les fonctions membres prédéfinies qui prennent en charge les propriétés communes pour le contrôle.Certaines propriétés communes 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 stock, consultez Propriétés stock prises en charge par l'Assistant Ajout de propriété ultérieurement dans cet article.Les entrées de mappage de dispatch pour les propriétés stock sont toujours préfixées par DISP_STOCKPROP.

Cet article explique comment ajouter une propriété stock (dans ce cas, légende) à un contrôle ActiveX à l'aide de l'Assistant Ajout de propriété et décrit les modifications résultant du code.Les rubriques traitées ici sont les suivantes :

  • L'Assistant Ajout de propriété pour ajouter une propriété stock

  • Modifications de l'Assistant Ajout de propriété pour les propriétés stock

  • Propriétés stock prises en charge par l'Assistant Ajout de propriété

  • Propriétés stock et notification

  • Propriétés de couleur

    [!REMARQUE]

    Les contrôles personnalisés Visual Basic en général ont des propriétés telles que le supérieur, gauche, largeur, la hauteur, s'alignent, les référencent, les nom, TabIndex, tabulation, et parent.Les conteneurs de contrôle ActiveX, toutefois, sont chargées d'implémenter ces propriétés de contrôle et par conséquent les contrôles ActiveX ne doivent pas prendre en charge ces propriétés.

L'Assistant Ajout de propriété pour ajouter une propriété stock

Ajout de propriétés stock requiert moins de code que les ajout de propriétés personnalisées parce que la prise en charge de la propriété est géré automatiquement par COleControl.La procédure suivante montre comment ajouter la propriété de cotations boursières de légende par une infrastructure du contrôle ActiveX et peut également être utilisée pour ajouter d'autres propriétés stock.Remplacez le nom de la propriété stock sélectionné pour la légende.

Pour ajouter la propriété de cotations boursières de légende l'Assistant Ajout de propriété

  1. Chargez le projet de votre contrôle.

  2. Dans l'Affichage de classes, développez le nœud de la bibliothèque de votre contrôle.

  3. Cliquez avec le bouton droit sur le nœud de l'interface pour votre contrôle (le deuxième nœud du nœud de bibliothèque) pour ouvrir le menu contextuel.

  4. Dans le menu contextuel, cliquez sur Ajouter puis cliquez sur Ajouter une propriété.

    Cela ouvre L'Assistant Ajout de propriété.

  5. Dans la zone de Nom de la propriété , cliquez sur Caption.

  6. Cliquez sur Terminer.

Modifications de l'Assistant Ajout de propriété pour les propriétés stock

Étant donné que les propriétés stock provenant d' COleControl , l'Assistant Ajout de propriété ne modifie pas la déclaration de classe de quelque façon ; elle ajoute la propriété à la table de dispatch.L'Assistant Ajout de propriété ajoutez la ligne suivante à la table de dispatch du contrôle, qui se trouve dans le fichier d'implémentation (.CPP) :

DISP_STOCKPROP_CAPTION()

La ligne suivante est ajoutée à votre fichier de description de l'interface de contrôle (.IDL) :

[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;

Cette ligne assigne à la propriété caption un ID spécifiqueNotez que la propriété peut être lié et demandera l'autorisation de la base de données avant de modifier la valeur.

Cela rend la propriété caption disponible aux utilisateurs de votre contrôle.Pour utiliser la valeur d'une propriété boursières, accédez à une variable membre ou une fonction membre de la classe de base d' COleControl .Pour plus d'informations sur ces variables membres et fonctions membres, consultez la section suivante, propriétés stock prises en charge par l'Assistant Ajout de propriété.

Propriétés stock prises en charge par l'Assistant Ajout de propriété

La classe d' COleControl fournit neuf propriétés stock.Vous pouvez ajouter des propriétés que vous souhaitez en utilisant l'Assistant Ajout de propriété.

Property

Entrée de table de dispatch

Accès à la valeur

Apparence

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.

Activé

DISP_STOCKPROP_ENABLED ()

Valeur accessible en tant que m_bEnabled.

Police

DISP_STOCKPROP_FONT ()

Consultez l'article Contrôles ActiveX MFC : Utilisation des polices d'utilisation.

ForeColor

DISP_STOCKPROP_FORECOLOR ()

Valeur accessible en appelant GetForeColor.

hWnd

DISP_STOCKPROP_HWND ()

Évaluez accessible en tant que m_hWnd.

Texte

DISP_STOCKPROP_TEXT ()

Valeur accessible en appelant InternalGetText.Cette propriété est le même que Caption, à l'exception de le nom de la propriété.

ReadyState

DISP_STOCKPROP_ READYSTATE()

Valeur accessible en tant que m_lReadyState ou GetReadyState

Propriétés stock et notification

La plupart des propriétés stock ont des fonctions de notification qui peuvent être substituées.Par exemple, chaque fois que la propriété d' BackColor est modifiée, la fonction d' OnBackColorChanged (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 prendre des mesures supplémentaires en réponse à cette situation.

Propriétés de couleur

Vous pouvez utiliser ForeColor et de propriétés stock d' BackColor , ou vos propres propriétés de couleurs personnalisées, lorsque vous peignez le contrôle.Pour utiliser une propriété de couleur, appelez la fonction membre de COleControl::TranslateColor .Les paramètres de cette fonction sont la valeur de la propriété color et un handle facultatif de la palette.La valeur de retour est une valeur de COLORREF qui peut être passée aux fonctions GDI, telles que SetTextColor et CreateSolidBrush.

Les valeurs de couleur pour ForeColor et de propriétés stock d' BackColor sont accessibles en appelant GetForeColor ou la fonction d' GetBackColor , respectivement.

L'exemple suivant illustre l'utilisation de ces deux propriétés de couleur lorsque vous peignez un contrôle.Initialiser une variable temporaire de COLORREF et un objet d' CBrush par des appels à TranslateColor: un à l'aide de la propriété d' ForeColor et l'autre à l'aide de la propriété d' BackColor .Un objet temporaire d' CBrush est ensuite utilisé pour peindre le rectangle du contrôle, et la couleur de texte est définie à l'aide de la propriété d' ForeColor .

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

Référence

COleControl, classe

Concepts

Contrôles ActiveX MFC

Contrôles ActiveX MFC : Propriétés

Contrôles ActiveX MFC : méthodes