Partager via


Contrôles ActiveX MFC : pages de propriétés

Les pages de propriétés permettent à un utilisateur de contrôle ActiveX d’afficher et de modifier les propriétés de contrôle ActiveX. Ces propriétés sont accessibles en appelant une boîte de dialogue propriétés de contrôle, qui contient une ou plusieurs pages de propriétés qui fournissent une interface graphique personnalisée pour l’affichage et la modification des propriétés du contrôle.

Important

ActiveX est une technologie héritée qui ne doit pas être utilisée pour le nouveau développement. Pour plus d’informations sur les technologies modernes qui remplacent ActiveX, consultez Contrôles ActiveX.

Les pages de propriétés de contrôle ActiveX sont affichées de deux façons :

  • Lorsque le verbe Propriétés du contrôle (OLEIVERB_PROPERTIES) est appelé, le contrôle ouvre une boîte de dialogue de propriété modale qui contient les pages de propriétés du contrôle.

  • Le conteneur peut afficher sa propre boîte de dialogue sans mode qui affiche les pages de propriétés du contrôle sélectionné.

La boîte de dialogue propriétés (illustrée dans la figure suivante) se compose d’une zone permettant d’afficher la page de propriétés active, les onglets pour basculer entre les pages de propriétés et une collection de boutons qui effectuent des tâches courantes telles que la fermeture de la boîte de dialogue de page de propriétés, l’annulation des modifications apportées ou l’application immédiate de modifications au contrôle ActiveX.

Properties dialog box for Circ3.
Boîte de dialogue Propriétés

Cet article traite des rubriques relatives à l’utilisation de pages de propriétés dans un contrôle ActiveX. Il s’agit notamment des paramètres suivants :

Pour plus d’informations sur l’utilisation de pages de propriétés dans un contrôle ActiveX, consultez les articles suivants :

Pour plus d’informations sur l’utilisation de feuilles de propriétés dans une application MFC autre qu’un contrôle ActiveX, consultez Les feuilles de propriétés.

Implémentation de la page de propriétés par défaut

Si vous utilisez l’Assistant Contrôle ActiveX pour créer votre projet de contrôle, l’Assistant Contrôle ActiveX fournit une classe de page de propriétés par défaut pour le contrôle dérivé de la classe COlePropertyPage. Initialement, cette page de propriétés est vide, mais vous pouvez y ajouter n’importe quel contrôle de boîte de dialogue ou ensemble de contrôles. Étant donné que l’Assistant Contrôle ActiveX crée une seule classe de page de propriétés par défaut, des classes de page de propriétés supplémentaires (également dérivées de COlePropertyPage) doivent être créées à l’aide de l’affichage de classes. Pour plus d’informations sur cette procédure, consultez contrôles ActiveX MFC : Ajout d’une autre page de propriétés personnalisée.

L’implémentation d’une page de propriétés (dans ce cas, la valeur par défaut) est un processus en trois étapes :

Pour implémenter une page de propriétés

  1. Ajoutez une COlePropertyPageclasse dérivée au projet de contrôle. Si le projet a été créé à l’aide de l’Assistant Contrôle ActiveX (comme dans ce cas), la classe de page de propriétés par défaut existe déjà.

  2. Utilisez l’éditeur de boîte de dialogue pour ajouter des contrôles au modèle de page de propriétés.

  3. Personnalisez la DoDataExchange fonction de la COlePropertyPageclasse dérivée pour échanger des valeurs entre le contrôle de page de propriétés et le contrôle ActiveX.

Par exemple, les procédures suivantes utilisent un contrôle simple (nommé « Sample »). L’exemple a été créé à l’aide de l’Assistant Contrôle ActiveX et contient uniquement la propriété stock Caption.

Ajout de contrôles à une page de propriétés

Pour ajouter des contrôles à une page de propriétés

  1. Une fois votre projet de contrôle ouvert, ouvrez l’affichage des ressources.

  2. Double-cliquez sur l’icône du répertoire de boîte de dialogue .

  3. Ouvrez la boîte de dialogue IDD_PROPPAGE_SAMPLE.

    L’Assistant Contrôle ActiveX ajoute le nom du projet à la fin de l’ID de boîte de dialogue, dans ce cas, Exemple.

  4. Faites glisser et déposez le contrôle sélectionné de la boîte à outils vers la zone de boîte de dialogue.

  5. Pour cet exemple, un contrôle d’étiquette de texte « Caption : » et un contrôle de zone d’édition avec un identificateur IDC_CAPTION sont suffisants.

  6. Cliquez sur Enregistrer dans la barre d’outils pour enregistrer vos modifications.

Maintenant que l’interface utilisateur a été modifiée, vous devez lier la zone d’édition à la propriété Caption. Pour ce faire, dans la section suivante, modifiez la CSamplePropPage::DoDataExchange fonction.

Personnalisation de la fonction DoDataExchange

La fonction CWnd ::D oDataExchange de la page de propriétés vous permet de lier des valeurs de page de propriétés avec les valeurs réelles des propriétés dans le contrôle. Pour établir des liens, vous devez mapper les champs de la page de propriétés appropriés à leurs propriétés de contrôle respectives.

Ces mappages sont implémentés à l’aide de la page de propriétés DDP_ fonctions. Les fonctions DDP_ fonctionnent comme les fonctions DDX_ utilisées dans les dialogues MFC standard, à une exception près. Outre la référence à une variable membre, DDP_ fonctions prennent le nom de la propriété de contrôle. Voici une entrée classique dans la DoDataExchange fonction d’une page de propriétés.

DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));

Cette fonction associe la variable membre m_légende de la page de propriétés à la légende à l’aide de la DDP_TEXT fonction.

Une fois le contrôle de page de propriétés inséré, vous devez établir un lien entre le contrôle de page de propriétés, IDC_CAPTION et la propriété de contrôle réelle, Caption, à l’aide de la DDP_Text fonction décrite ci-dessus.

Les pages de propriétés sont disponibles pour d’autres types de contrôle de boîte de dialogue, tels que les zones de case activée, les cases d’option et les zones de liste. Le tableau ci-dessous répertorie l’ensemble de la page de propriétés DDP_ fonctions et leurs objectifs :

Fonctions de page de propriétés

Nom de la fonction Utiliser cette fonction pour lier
DDP_CBIndex Index de la chaîne sélectionnée dans une zone de liste modifiable avec une propriété de contrôle.
DDP_CBString Chaîne sélectionnée dans une zone de liste modifiable avec une propriété de contrôle. La chaîne sélectionnée peut commencer par les mêmes lettres que la valeur de la propriété, mais elle n’a pas besoin de la correspondre entièrement.
DDP_CBStringExact Chaîne sélectionnée dans une zone de liste modifiable avec une propriété de contrôle. La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement.
DDP_Check Zone case activée avec une propriété de contrôle.
DDP_LBIndex Index de la chaîne sélectionnée dans une zone de liste avec une propriété de contrôle.
DDP_LBString Chaîne sélectionnée dans une zone de liste avec une propriété de contrôle. La chaîne sélectionnée peut commencer par les mêmes lettres que la valeur de la propriété, mais elle n’a pas besoin de la correspondre entièrement.
DDP_LBStringExact Chaîne sélectionnée dans une zone de liste avec une propriété de contrôle. La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement.
DDP_Radio Case d’option avec une propriété de contrôle.
DDP_Text Texte avec une propriété de contrôle.

Voir aussi

Contrôles ActiveX MFC
COlePropertyPage, classe