Contrôles ActiveX MFC : Pages de propriétés
Les pages de propriétés permettent à l'utilisateur d'un contrôle ActiveX d'afficher et de modifier ses propriétés.Ces propriétés sont accessibles en appelant une boîte de dialogue des propriétés du contrôle, qui contient une ou plusieurs pages de propriétés constituant une interface graphique personnalisée pour afficher et modifier les propriétés du contrôle.
Les pages de propriétés du contrôle ActiveX sont affichées de deux façons :
Lorsque le verbe les propriétés du contrôle (OLEIVERB_PROPERTIES) est appelé, le contrôle ouvre une boîte de dialogue modale de propriété qui contient les pages de propriétés du contrôle.
Le conteneur peut afficher sa propre boîte de dialogue non modale qui affiche les pages de propriétés du contrôle sélectionné.
La boîte de dialogue de propriétés (illustrée dans l'illustration suivante) se compose d'une zone pour afficher la page de propriétés actuelle, les onglets pour basculer entre les pages de propriétés, et une collection de boutons qui effectuent des tâches courantes telles que fermer la boîte de dialogue page de propriétés, l'annulation de toutes les modifications apportées, ou identifier) des modifications au contrôle ActiveX.
Boîte de dialogue Propriétés
Cet article aborde les rubriques associées à utiliser les pages de propriétés dans un contrôle ActiveX.Ces niveaux sont les suivants :
Implémentation de la page de propriétés par défaut pour un contrôle ActiveX
Ajouter des contrôles à une page de propriétés
Personnaliser la fonction de DoDataExchange
Pour plus d'informations sur l'utilisation des pages de propriétés dans un contrôle ActiveX, consultez les articles suivants :
Contrôles ActiveX MFC : ajouter une autre page de propriétés personnalisée
Contrôles ActiveX MFC : Utilisation des pages de propriétés stock
Pour plus d'informations sur l'utilisation des feuilles de propriétés dans une application MFC autre qu'un contrôle ActiveX, consultez Feuilles de propriétés (MFC).
Implémentation de la page de propriétés par défaut
Si vous utilisez l'Assistant Contrôle ActiveX pour créer le projet de contrôle, l'Assistant Contrôle ActiveX fournit une classe par défaut de page de propriétés du contrôle dérivé de COlePropertyPage, classe.Initialement, cette page de propriétés est vide, mais vous pouvez ajouter un contrôle de boîte de dialogue ou jeu de contrôles à celui-ci.Dans la mesure où l'Assistant Contrôle ActiveX crée une seule classe de page de propriétés par défaut, des classes supplémentaires de page de propriétés (également dérivées d' 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 : ajouter une autre page de propriétés personnalisée.
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
Ajoutez 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 par défaut de page de propriétés existe déjà.
Utilisez l'éditeur de boîtes de dialogue pour ajouter des contrôles au modèle de page de propriétés.
Personnalisez la fonction d' DoDataExchange d' COlePropertyPageclasse dérivée aux valeurs d'échange entre le contrôle de la page de propriétés et du contrôle ActiveX.
À titre de exemple, les procédures suivantes utilisent un contrôle simple (nommé « exemple »).L'exemple a été créé à l'aide de l'Assistant Contrôle ActiveX et contient uniquement la propriété de cotations boursières de légende.
Ajouter des contrôles à une page de propriétés
Pour ajouter des contrôles à une page de propriétés
Avec votre projet de contrôle ouvrez, ouvrez l'affichage des ressources.
Double-cliquez sur l'icône du répertoire de Dialog .
Ouvrez la boîte de dialogue d' IDD_PROPPAGE_SAMPLE .
L'Assistant Contrôle ActiveX ajoute le projet à la fin de l'ID de boîte de dialogue, dans ce cas, un exemple.
Faites glisser le contrôle sélectionné dans la boîte à outils vers la zone de la boîte de dialogue.
Pour cet exemple, légende d'un contrôle d'étiquette de texte « : » et un contrôle de zone d'édition avec un identificateur d' IDC_CAPTION sont suffisant.
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 avec la propriété caption.Cela s'effectue dans la section suivante en modifiant la fonction d' CSamplePropPage::DoDataExchange .
Personnaliser la fonction de DoDataExchange
Votre fonction de CWnd::DoDataExchange de page de propriétés vous permet de définir des valeurs de page de propriétés de lien avec les valeurs réelles des propriétés dans le contrôle.Pour générer des liens, vous devez mapper les champs appropriés de page de propriétés à leurs propriétés de contrôle respectives.
Ces mappages sont implémentés à partir de les fonctionnalités de DDP_ de page de propriétés.Les fonctions de DDP_ fonctionnent comme les fonctions de DDX_ utilisées dans les boîtes de dialogue standard MFC, à une exception près.Outre la référence à une variable membre, les fonctions de DDP_ prennent le nom de la propriété du contrôle.Voici une entrée type dans la fonction d' DoDataExchange pour une page de propriétés.
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
Cette fonction associe la variable membre d' m_caption de la page de propriétés avec la légende, à l'aide de la fonction d' DDP_TEXT .
Une fois que vous avez fait insérer le contrôle de la page de propriétés, vous devez générer un lien entre le contrôle de la page de propriétés, IDC_CAPTION, et la propriété du contrôle réelle, légende, à l'aide de la fonction de DDP_Text comme décrit ci-dessus.
Pages de propriétés (MFC) sont disponibles pour d'autres types de contrôle de boîte de dialogue, tels que les cases à cocher, cases d'option, et les zones de liste.Le tableau ci-dessous répertorie l'ensemble des fonctions de DDP_ de page de propriétés et de leurs besoins :
Fonctions de page de propriétés
Nom de la fonction |
Utilisez cette fonction pour le lier |
---|---|
DDP_CBIndex |
Index de la chaîne sélectionnée dans une zone de liste déroulante avec une propriété du contrôle. |
DDP_CBString |
La chaîne sélectionnée dans une zone de liste déroulante avec une propriété du contrôle.La chaîne sélectionnée peut démarrer avec les mêmes lettres que la valeur de propriété mais n'a pas besoin de la correspondre complètement. |
DDP_CBStringExact |
La chaîne sélectionnée dans une zone de liste déroulante avec une propriété du contrôle.La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement. |
DDP_Check |
Une case à cocher avec une propriété du contrôle. |
DDP_LBIndex |
Index de la chaîne sélectionnée dans une zone de liste avec une propriété du contrôle. |
DDP_LBString |
La chaîne sélectionnée dans une zone de liste avec une propriété du contrôle.La chaîne sélectionnée peut démarrer avec les mêmes lettres que la valeur de propriété mais n'a pas besoin de la correspondre complètement. |
DDP_LBStringExact |
La chaîne sélectionnée dans une zone de liste avec une propriété du contrôle.La chaîne sélectionnée et la valeur de chaîne de la propriété doivent correspondre exactement. |
DDP_Radio |
Une case d'option avec une propriété du contrôle. |
DDP_Text |
Texte avec une propriété du contrôle. |