CMFCPropertySheet, classe
La classe CMFCPropertySheet
prend en charge une feuille de propriétés où chaque page de propriétés est représentée par un onglet de page, un bouton de barre d'outils, un nœud de contrôle d'arborescence ou un élément de liste.
class CMFCPropertySheet : public CPropertySheet
Nom | Description |
---|---|
CMFCPropertySheet ::CMFCPropertySheet | Construit un objet CMFCPropertySheet . |
CMFCPropertySheet::~CMFCPropertySheet |
Destructeur. |
Nom | Description |
---|---|
CMFCPropertySheet ::AddPage | Ajoute une page à la feuille de propriétés. |
CMFCPropertySheet ::AddPageToTree | Ajoute une nouvelle page de propriétés au contrôle d'arborescence. |
CMFCPropertySheet ::AddTreeCategory | Ajoute un nouveau nœud au contrôle d'arborescence. |
CMFCPropertySheet ::EnablePageHeader | Réserve de l'espace en haut de chaque page pour dessiner un en-tête personnalisé. |
CMFCPropertySheet ::GetHeaderHeight | Récupère la hauteur de l'en-tête actuel. |
CMFCPropertySheet ::GetLook | Récupère une valeur d'énumération qui spécifie l'apparence de la feuille de propriétés actuelle. |
CMFCPropertySheet ::GetNavBarWidth | Réessaie la largeur de la barre de navigation en pixels. |
CMFCPropertySheet ::GetTab | Récupère l'objet de contrôle d'onglet interne qui prend en charge le contrôle de feuille de propriétés actuel. |
CMFCPropertySheet::GetThisClass |
Utilisé par l’infrastructure pour obtenir un pointeur vers l’objet CRuntimeClass associé à ce type de classe. |
CMFCPropertySheet ::InitNavigationControl | Initialise l'apparence du contrôle de feuille de propriétés actuel. |
CMFCPropertySheet ::OnActivatePage | Appelé par l'infrastructure quand une page de propriétés est activée. |
CMFCPropertySheet ::OnDrawPageHeader | Appelé par l'infrastructure pour dessiner un en-tête de page de propriétés personnalisé. |
CMFCPropertySheet::OnInitDialog |
Gère le message WM_INITDIALOG . (Remplacements CPropertySheet ::OnInitDialog.) |
CMFCPropertySheet ::OnRemoveTreePage | Appelé par l'infrastructure pour supprimer une page de propriétés d'un contrôle d'arborescence. |
CMFCPropertySheet::PreTranslateMessage |
Traduit les messages de fenêtre avant qu’ils ne soient distribués aux fonctions Windows TranslateMessage et DispatchMessage . (Substitue CPropertySheet::PreTranslateMessage .) |
CMFCPropertySheet ::RemoveCategory | Supprime un nœud du contrôle d’arborescence. |
CMFCPropertySheet ::RemovePage | Supprime une page de propriétés de la feuille de propriétés. |
CMFCPropertySheet ::SetIconsList | Spécifie la liste des images utilisées dans le contrôle de navigation du volet Outlook. |
CMFCPropertySheet ::SetLook | Spécifie l'apparence de la feuille de propriétés. |
La classe CMFCPropertySheet
représente les feuilles de propriétés, aussi appelées boîtes de dialogue à onglets. La classe CMFCPropertySheet
peut afficher une page de propriétés de diverses manières.
Pour utiliser la classe CMFCPropertySheet
dans votre application, procédez comme suit :
Faites dériver une classe de la classe
CMFCPropertySheet
et nommez-la, par exemple, CMyPropertySheet.Construisez un objet CMFCPropertyPage pour chaque page de propriétés.
Appelez la méthode CMFCPropertySheet ::SetLook dans le constructeur CMyPropertySheet. Un paramètre de cette méthode permet de spécifier sous quelle forme les pages de propriétés seront affichées : onglets le long de la bordure supérieure ou gauche de la feuille de propriétés ; onglets dans le style d'une feuille de propriétés Microsoft OneNote ; boutons sur un contrôle de barre d'outils Microsoft Outlook ; nœuds sur un contrôle d'arborescence ; ou liste d'éléments sur le côté gauche de la feuille de propriétés.
Si vous créez une feuille de propriétés dans le style d’une barre d’outils Microsoft Outlook, appelez la méthode CMFCPropertySheet ::SetIconsList pour associer une liste d’images aux pages de propriétés.
Appelez la méthode CMFCPropertySheet ::AddPage pour chaque page de propriétés.
Créez un contrôle
CMFCPropertySheet
et appelez sa méthodeDoModal
.
L'illustration suivante représente une feuille de propriétés dont le style est celui d'une barre d'outils Microsoft Outlook incorporée. La barre d'outils Outlook s'affiche sur le côté gauche de la feuille de propriétés.
L’illustration suivante illustre une feuille de propriétés qui contient un objet CMFCPropertyGridCtrl, classe . Cet objet est une feuille de propriétés dont le style est celui d'une feuille de propriétés de contrôles communs standard.
L’illustration suivante représente une feuille de propriétés dont le style est celui d’un contrôle d’arborescence.
En-tête : afxpropertysheet.h
Ajoute une page à la feuille de propriétés.
void AddPage(CPropertyPage* pPage);
pPage
[in] Pointeur vers un objet de page. Ce paramètre ne peut pas être NULL.
Cette méthode ajoute la page de propriétés spécifiée comme onglet le plus à droite de la feuille de propriétés. Par conséquent, utilisez cette méthode pour ajouter des pages dans l’ordre de gauche à droite.
Si la feuille de propriétés est dans le style de Microsoft Outlook, l’infrastructure affiche une liste de boutons de navigation à gauche de la feuille de propriétés. Une fois cette méthode ajouté une page de propriétés, elle ajoute un bouton correspondant à la liste. Pour afficher une page de propriétés, cliquez sur son bouton correspondant. Pour plus d’informations sur les styles de feuilles de propriétés, consultez CMFCPropertySheet ::SetLook.
Ajoute une nouvelle page de propriétés au contrôle d'arborescence.
void AddPageToTree(
CMFCPropertySheetCategoryInfo* pCategory,
CMFCPropertyPage* pPage,
int nIconNum=-1,
int nSelIconNum=-1);
pCategory
[in] Pointeur vers un nœud d’arborescence parent ou NULL pour associer la page spécifiée au nœud de niveau supérieur. Appelez la méthode CMFCPropertySheet ::AddTreeCategory pour obtenir ce pointeur.
pPage
[in] Pointeur vers un objet de page de propriétés.
nIconNum
[in] Index de base zéro d’une icône ou -1 si aucune icône n’est utilisée. L’icône s’affiche en regard de la page de propriétés du contrôle d’arborescence lorsque la page n’est pas sélectionnée. La valeur par défaut est -1.
nSelIconNum
[in] Index de base zéro d’une icône ou -1 si aucune icône n’est utilisée. L’icône s’affiche en regard de la page de propriétés du contrôle d’arborescence lorsque la page est sélectionnée. La valeur par défaut est -1.
Cette méthode ajoute une page de propriétés en tant que feuille d’un contrôle d’arborescence. Pour ajouter une page de propriétés, créez un CMFCPropertySheet
objet, appelez la méthode CMFCPropertySheet ::SetLook avec le paramètre look défini CMFCPropertySheet::PropSheetLook_Tree
sur , puis utilisez cette méthode pour ajouter la page de propriétés.
Ajoute un nouveau nœud au contrôle d'arborescence.
CMFCPropertySheetCategoryInfo* AddTreeCategory(
LPCTSTR lpszLabel,
int nIconNum=-1,
int nSelectedIconNum=-1,
const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);
lpszLabel
[in] Nom du nœud.
nIconNum
[in] Index de base zéro d’une icône ou -1 si aucune icône n’est utilisée. L’icône s’affiche en regard de la page de propriétés du contrôle d’arborescence lorsque la page n’est pas sélectionnée. La valeur par défaut est -1.
nSelectedIconNum
[in] Index de base zéro d’une icône ou -1 si aucune icône n’est utilisée. L’icône s’affiche en regard de la page de propriétés du contrôle d’arborescence lorsque la page est sélectionnée. La valeur par défaut est -1.
pParentCategory
[in] Pointeur vers un nœud d’arborescence parent ou NULL pour associer la page spécifiée au nœud de niveau supérieur. Définissez ce paramètre avec la méthode CMFCPropertySheet ::AddTreeCategory .
Pointeur vers le nouveau nœud dans le contrôle d’arborescence.
Utilisez cette méthode pour ajouter un nouveau nœud, également appelé catégorie, au contrôle d’arborescence. Pour ajouter un nœud, créez un CMFCPropertySheet
objet, appelez la méthode CMFCPropertySheet ::SetLook avec le paramètre look défini CMFCPropertySheet::PropSheetLook_Tree
sur , puis utilisez cette méthode pour ajouter le nœud.
Utilisez la valeur de retour de cette méthode dans les appels suivants à CMFCPropertySheet ::AddPageToTree et CMFCPropertySheet ::AddTreeCategory.
Construit un objet CMFCPropertySheet
.
CMFCPropertySheet(
UINT nIDCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
CMFCPropertySheet(
LPCTSTR pszCaption,
CWnd* pParentWnd=NULL,
UINT iSelectPage=0);
pszCaption
[in] Chaîne qui contient la légende de la feuille de propriétés. Ne peut pas avoir la valeur NULL.
nIDCaption
[in] ID de ressource qui contient la légende de la feuille de propriétés.
pParentWnd
[in] Pointeur vers la fenêtre parente de la feuille de propriétés, ou NULL si la fenêtre parente est la fenêtre principale de l’application. La valeur par défaut est NULL.
iSelectPage
[in] Index de base zéro de la page de propriétés supérieure. La valeur par défaut est 0.
Pour plus d’informations, consultez les paramètres du constructeur CPropertySheet ::CPropertySheet .
Réserve de l'espace en haut de chaque page pour dessiner un en-tête personnalisé.
void EnablePageHeader(int nHeaderHeight);
nHeaderHeight
[in] Hauteur de l’en-tête, en pixels.
Pour utiliser la valeur du paramètre nHeaderHeight pour dessiner un en-tête personnalisé, remplacez la méthode CMFCPropertySheet ::OnDrawPageHeader .
Récupère la hauteur de l'en-tête actuel.
int GetHeaderHeight() const;
Hauteur de l’en-tête, en pixels.
Appelez la méthode CMFCPropertySheet ::EnablePageHeader avant d’appeler cette méthode.
Récupère une valeur d'énumération qui spécifie l'apparence de la feuille de propriétés actuelle.
PropSheetLook GetLook() const;
Une des valeurs d’énumération qui spécifie l’apparence de la feuille de propriétés. Pour obtenir la liste des valeurs possibles, consultez la table d’énumération dans la section Notes de CMFCPropertySheet ::SetLook.
Obtient la largeur de la barre de navigation.
int GetNavBarWidth() const;
Largeur de la barre de navigation en pixels.
Récupère l'objet de contrôle d'onglet interne qui prend en charge le contrôle de feuille de propriétés actuel.
CMFCTabCtrl& GetTab() const;
Objet de contrôle tabulation interne.
Vous pouvez définir une feuille de propriétés pour qu’elle apparaisse dans différents styles, tels qu’un contrôle d’arborescence, une liste de boutons de navigation ou un ensemble de pages à onglets.
Avant d’appeler cette méthode, appelez la méthode CMFCPropertySheet ::SetLook pour définir l’apparence du contrôle de feuille de propriétés. Appelez ensuite la méthode CMFCPropertySheet ::InitNavigationControl pour initialiser l’objet de contrôle tabulation interne. Utilisez cette méthode pour récupérer l’objet de contrôle Tab, puis utilisez cet objet pour travailler avec les onglets de la feuille de propriétés.
Cette méthode s’affirme en mode débogage si le contrôle de feuille de propriétés n’est pas défini pour apparaître dans le style de Microsoft OneNote.
Initialise l'apparence du contrôle de feuille de propriétés actuel.
virtual CWnd* InitNavigationControl();
Pointeur vers la fenêtre du contrôle de feuille de propriétés.
Un contrôle de feuille de propriétés peut apparaître sous plusieurs formes différentes, telles qu’un ensemble de pages à onglets, un contrôle d’arborescence ou une liste de boutons de navigation. Utilisez la méthode CMFCPropertySheet ::SetLook pour spécifier l’apparence du contrôle de feuille de propriétés.
Appelé par l'infrastructure quand une page de propriétés est activée.
virtual void OnActivatePage(CPropertyPage* pPage);
pPage
[in] Pointeur vers un objet de page de propriétés qui représente la page de propriétés activée.
Par défaut, cette méthode garantit que la page de propriétés activée est défiler dans l’affichage. Si le style de la feuille de propriétés actuelle contient un volet Microsoft Outlook, cette méthode définit le bouton Outlook correspondant à l’état vérifié.
Appelé par l’infrastructure pour dessiner l’en-tête d’une page de propriétés personnalisée.
virtual void OnDrawPageHeader(
CDC* pDC,
int nPage,
CRect rectHeader);
pDC
[in] Pointeur vers un contexte d’appareil.
nPage
[in] Numéro de page de propriété de base zéro.
rectHeader
[in] Rectangle englobant qui spécifie où dessiner l’en-tête.
Par défaut, cette méthode ne fait rien. Si vous remplacez cette méthode, appelez la méthode CMFCPropertySheet ::EnablePageHeader avant que l’infrastructure appelle cette méthode.
Appelé par l'infrastructure pour supprimer une page de propriétés d'un contrôle d'arborescence.
virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);
pPage
[in] Pointeur vers un objet de page de propriétés qui représente la page de propriétés à supprimer.
TRUE si cette méthode réussit ; sinon, FALSE.
Supprime un nœud du contrôle d’arborescence.
void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);
pCategory
[in] Pointeur vers une catégorie (nœud) à supprimer.
Utilisez cette méthode pour supprimer un nœud, également appelé catégorie, d’un contrôle d’arborescence. Utilisez la méthode CMFCPropertySheet ::AddTreeCategory pour ajouter un nœud à un contrôle d’arborescence.
Supprime une page de propriétés de la feuille de propriétés.
void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);
pPage
[in] Pointeur vers l’objet page de propriétés qui représente la page de propriétés à supprimer. Ne peut pas avoir la valeur NULL.
nPage
[in] Index de base zéro de la page à supprimer.
Cette méthode supprime la page de propriétés spécifiée et détruit sa fenêtre associée. L’objet de page de propriétés spécifié par le paramètre pPage n’est pas détruit tant que la fenêtre CMFCPropertySheet n’est pas fermée.
Spécifie la liste des images utilisées dans le contrôle de navigation du volet Outlook.
BOOL SetIconsList(
UINT uiImageListResID,
int cx,
COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);
uiImageListResID
[in] ID de ressource d’une liste d’images.
cx
[in] Largeur, en pixels, des icônes dans la liste d’images.
clrTransparent
[in] Couleur transparente de l’image. Les parties de l’image qui sont cette couleur seront transparentes. La valeur par défaut est la couleur magenta, RGB(255,0,255).
hIcons
[in] Handle vers une liste d’images existante.
Dans la première syntaxe de surcharge de méthode, TRUE si cette méthode réussit ; sinon, FALSE.
Si la feuille de propriétés est dans le style de Microsoft Outlook, l’infrastructure affiche une liste de boutons de navigation, appelé contrôle du volet Outlook, à gauche de la feuille de propriétés. Utilisez cette méthode pour définir la liste d’images à utiliser par le contrôle du volet Outlook.
Pour plus d’informations sur les méthodes qui prennent en charge cette méthode, consultez CImageList ::Create et CImageList ::Add. Pour plus d’informations sur la définition du style d’une feuille de propriétés, consultez CMFCPropertySheet ::SetLook.
Spécifie l'apparence de la feuille de propriétés.
void SetLook(
PropSheetLook look,
int nNavControlWidth=100);
regarder
[in] Une des valeurs d’énumération qui spécifie l’apparence de la feuille de propriétés. Le style par défaut d’une feuille de propriétés est CMFCPropertySheet::PropSheetLook_Tabs
. Pour plus d’informations, consultez le tableau de la section Remarques de cette rubrique.
nNavControlWidth
[in] Largeur du contrôle de navigation, en pixels. La valeur par défaut est 100.
Pour afficher une feuille de propriétés dans un style autre que la valeur par défaut, appelez cette méthode avant de créer la fenêtre de feuille de propriétés.
Le tableau suivant répertorie les valeurs d’énumération qui peuvent être spécifiées dans le paramètre look .
Valeur | Description |
---|---|
CMFCPropertySheet::PropSheetLook_Tabs |
(Par défaut) Affiche un onglet pour chaque page de propriétés. Les onglets sont affichés en haut de la feuille de propriétés et sont empilés s’il y a plus d’onglets qu’il ne s’adapte à une seule ligne. |
CMFCPropertySheet::PropSheetLook_OutlookBar |
Affiche une liste de boutons de navigation, dans le style de la barre Microsoft Outlook, à gauche de la feuille de propriétés. Chaque bouton de la liste correspond à une page de propriétés. Le framework affiche des flèches de défilement s’il y a plus de boutons que ce qui s’adapte à la zone visible de la liste. |
CMFCPropertySheet::PropSheetLook_Tree |
Affiche un contrôle d’arborescence à gauche de la feuille de propriétés. Chaque nœud parent ou enfant du contrôle d’arborescence correspond à une page de propriétés. L’infrastructure affiche des flèches de défilement s’il y a plus de nœuds que cela s’adapte à la zone visible du contrôle d’arborescence. |
CMFCPropertySheet::PropSheetLook_OneNoteTabs |
Affiche un onglet, dans le style de Microsoft OneNote, pour chaque page de propriétés. L’infrastructure affiche des onglets en haut de la feuille de propriétés et des flèches de défilement s’il y a plus d’onglets qu’il ne s’adapte à une seule ligne. |
CMFCPropertySheet::PropSheetLook_List |
Affiche une liste à gauche de la feuille de propriétés. Chaque élément de liste correspond à une page de propriétés. Le framework affiche les flèches de défilement s’il y a plus d’éléments de liste que ce qui s’adapte à la zone visible de la liste. |
Graphique hiérarchique
Classes
CMFCPropertyPage, classe
CMFCOutlookBar, classe