Comment faire une fenêtre personnalisée Splitter dans MFC

Une fenêtre de séparation est une interface de type Explorateur Windows. Le volet de gauche (maître) montre typiquement une structure de répertoire. Le volet de droite (esclave) affiche les détails du dossier qui est sélectionné sur la gauche. La classe CSplitterWnd de Microsoft Foundation Class (MFC) Bibliothèque encapsule la fonctionnalité de gestion d'une fenêtre fractionnée. Voici les lignes directrices générales pour l'initialisation d'une classe CSplitterWnd.

Instructions

1 Créez un nouveau projet Application Win32. Assurez-vous qu'il a un seul fichier source avec document / vue soutien. Inclure le "afxwin.h" fichier de bibliothèque. Déclarez une variable CSplitterWnd.

2 Comprendre la différence entre les fenêtres fractionnées statiques et dynamiques. Une fenêtre de séparation statique a un nombre statique de vitres, déterminé à l'intérieur "OnCreateClient" la fonction du cadre parent lors de l'initialisation. Un utilisateur ne peut modifier la taille des panneaux. Une fenêtre de séparateur dynamique fournit des commandes qui permettent à un utilisateur de créer, supprimer et redimensionner les volets supplémentaires au besoin. Lors de l'initialisation, le cadre crée un seul volet par défaut.

3 Placez la variable CSplitterWnd sur une fenêtre parent ou un cadre. Cet exemple utilise un objet CFrameWnd comme cadre parent. De l'intérieur de la fonction "OnCreateClient" membre de "CFrameWnd," appeler la fonction "Créer" de "CSplitterWnd", "CreateStatic" ou selon que vous voulez créer un statique ou une fenêtre de séparation dynamique, respectivement.

4 Réglez la hauteur et la largeur des vitres individuelles à travers le "SetRowInfo" et les fonctions membres "de SetColumnInfo". Vous les appelez à l'intérieur "CreateStatic" ou "Créer" pour initialiser la hauteur et la largeur à zéro. Appelez-les de nouveau après "CreateStatic" et "Créer" pour spécifier les dimensions du volet souhaitées.

5 Créer des barres de défilement entre les vitres. Une fenêtre de séparation qui a une ligne et deux colonnes affiche une barre de défilement de style WS_VSCROLL. Celui qui a deux lignes et une colonne affichera une barre de défilement de style WS_HSCROLL. Les barres de défilement par défaut sont des enfants de la classe CSplitterWnd. Un objet CSplitterWnd statique peut supporter des barres de défilement des classes de ses vitres.

Conseils et avertissements

  • Un choix commun de volet pour un objet CSplitterWnd statique est la classe CView.
  • Pour utiliser la classe CView, vous devez utiliser le CHolderView qui détient les commandes de CView.
  • Intégration d'une fenêtre fractionnée dans un objet CFrameWnd se penchera en contrebas. Il est préférable de dériver une classe de CFrameWnd de manière à éliminer son style WS_EX_CLIENTEDGE avant la création.