La classe CSplitterWnd
Fournit les fonctionnalités d'une fenêtre fractionnée, qui est une fenêtre contenant plusieurs volets.
Syntaxe
class CSplitterWnd : public CWnd
Membres
Constructeurs publics
Nom | Description |
---|---|
CSplitterWnd::CSplitterWnd |
Appelez pour construire un CSplitterWnd objet. |
Méthodes publiques
Nom | Description |
---|---|
CSplitterWnd::ActivateNext |
Exécute la commande Volet suivant ou Volet précédent. |
CSplitterWnd::CanActivateNext |
Vérifie si la commande Volet suivant ou Volet précédent est actuellement possible. |
CSplitterWnd::Create |
Appelez pour créer une fenêtre de fractionnement dynamique et l’attacher à l’objet CSplitterWnd . |
CSplitterWnd::CreateScrollBarCtrl |
Crée un contrôle de barre de défilement partagée. |
CSplitterWnd::CreateStatic |
Appelez pour créer une fenêtre de fractionnement statique et l’attacher à l’objet CSplitterWnd . |
CSplitterWnd::CreateView |
Appelez pour créer un volet dans une fenêtre de fractionnement. |
CSplitterWnd::DeleteColumn |
Supprime une colonne de la fenêtre de fractionnement. |
CSplitterWnd::DeleteRow |
Supprime une ligne de la fenêtre de fractionnement. |
CSplitterWnd::DeleteView |
Supprime une vue de la fenêtre de fractionnement. |
CSplitterWnd::DoKeyboardSplit |
Exécute la commande de fractionnement du clavier, généralement « Fractionnement de fenêtre ». |
CSplitterWnd::DoScroll |
Effectue le défilement synchronisé des fenêtres fractionnées. |
CSplitterWnd::DoScrollBy |
Fait défiler les fenêtres fractionnées par un nombre donné de pixels. |
CSplitterWnd::GetActivePane |
Détermine le volet actif à partir du focus ou de l’affichage actif dans le cadre. |
CSplitterWnd::GetColumnCount |
Retourne le nombre de colonnes du volet actif. |
CSplitterWnd::GetColumnInfo |
Retourne des informations sur la colonne spécifiée. |
CSplitterWnd::GetPane |
Retourne le volet à la ligne et à la colonne spécifiées. |
CSplitterWnd::GetRowCount |
Retourne le nombre de lignes du volet actuel. |
CSplitterWnd::GetRowInfo |
Retourne des informations sur la ligne spécifiée. |
CSplitterWnd::GetScrollStyle |
Retourne le style de barre de défilement partagé. |
CSplitterWnd::IdFromRowCol |
Retourne l’ID de fenêtre enfant du volet sur la ligne et la colonne spécifiées. |
CSplitterWnd::IsChildPane |
Appelez pour déterminer si la fenêtre est actuellement un volet enfant de cette fenêtre de fractionnement. |
CSplitterWnd::IsTracking |
Détermine si la barre de fractionnement est en cours de déplacement. |
CSplitterWnd::RecalcLayout |
Appelez pour réafficher la fenêtre de fractionnement après avoir ajusté la taille de ligne ou de colonne. |
CSplitterWnd::SetActivePane |
Définit un volet comme actif dans le cadre. |
CSplitterWnd::SetColumnInfo |
Appel pour définir les informations de colonne spécifiées. |
CSplitterWnd::SetRowInfo |
Appel pour définir les informations de ligne spécifiées. |
CSplitterWnd::SetScrollStyle |
Spécifie le nouveau style de barre de défilement pour la prise en charge de la barre de défilement partagée de la fenêtre de fractionnement. |
CSplitterWnd::SplitColumn |
Indique où une fenêtre frame se fractionne verticalement. |
CSplitterWnd::SplitRow |
Indique où une fenêtre frame se fractionne horizontalement. |
Méthodes protégées
Nom | Description |
---|---|
CSplitterWnd::OnDraw |
Appelé par l’infrastructure pour dessiner la fenêtre de fractionnement. |
CSplitterWnd::OnDrawSplitter |
Affiche une image d’une fenêtre fractionnée. |
CSplitterWnd::OnInvertTracker |
Affiche l’image d’une fenêtre fractionnée de la même taille et de la même forme que la fenêtre cadre. |
Notes
Un volet est généralement un objet spécifique à l’application dérivé de , mais il peut s’agir d’un CView
CWnd
objet qui a l’ID de fenêtre enfant approprié.
Un CSplitterWnd
objet est généralement incorporé dans un parent CFrameWnd
ou CMDIChildWnd
un objet. Créez un CSplitterWnd
objet en procédant comme suit :
Incorporer une
CSplitterWnd
variable membre dans le cadre parent.Remplacez la fonction membre de l’image
CFrameWnd::OnCreateClient
parente.À partir de l’élément substitué
OnCreateClient
, appelez laCreate
fonction ouCreateStatic
membre deCSplitterWnd
.
Appelez la Create
fonction membre pour créer une fenêtre de fractionnement dynamique. Une fenêtre de fractionnement dynamique est généralement utilisée pour créer et faire défiler un certain nombre de volets individuels, ou vues, du même document. L’infrastructure crée automatiquement un volet initial pour le séparateur ; ensuite, l’infrastructure crée, redimensionne et supprime des volets supplémentaires lorsque l’utilisateur exploite les contrôles de la fenêtre de fractionnement.
Lorsque vous appelez Create
, vous spécifiez une hauteur de ligne minimale et une largeur de colonne qui déterminent quand les volets sont trop petits pour être entièrement affichés. Après l’appelCreate
, vous pouvez ajuster ces minimums en appelant les fonctions membres et SetRowInfo
les SetColumnInfo
fonctions membres.
Utilisez également les fonctions membres et SetRowInfo
les SetColumnInfo
fonctions pour définir une largeur « idéale » pour une colonne et une hauteur « idéale » pour une ligne. Lorsque l’infrastructure affiche une fenêtre de fractionnement, elle affiche d’abord le cadre parent, puis la fenêtre de fractionnement. L’infrastructure place ensuite les volets dans les colonnes et les lignes en fonction de leurs dimensions idéales, en travaillant de l’angle supérieur gauche au coin inférieur droit de la zone cliente de la fenêtre de fractionnement.
Tous les volets d’une fenêtre de fractionnement dynamique doivent être de la même classe. Les applications familières qui prennent en charge les fenêtres de fractionnement dynamique incluent Microsoft Word et Microsoft Excel.
Utilisez la CreateStatic
fonction membre pour créer une fenêtre de fractionnement statique. L’utilisateur ne peut modifier que la taille des volets dans une fenêtre de fractionnement statique, et non leur nombre ou leur ordre.
Vous devez créer spécifiquement tous les volets du fractionnement statique lorsque vous créez le séparateur statique. Veillez à créer tous les volets avant que la fonction membre du OnCreateClient
cadre parent ne retourne, ou que l’infrastructure n’affiche pas correctement la fenêtre.
La CreateStatic
fonction membre initialise automatiquement un séparateur statique avec une hauteur de ligne minimale et une largeur de colonne de 0. Après l’appelCreate
, ajustez ces minimums en appelant les fonctions membres et SetRowInfo
les SetColumnInfo
fonctions membres. SetColumnInfo
Utilisez également et SetRowInfo
après l’appel CreateStatic
pour indiquer les dimensions de volet idéales souhaitées.
Les volets individuels d’un séparateur statique appartiennent souvent à différentes classes. Pour obtenir des exemples de fenêtres de fractionnement statiques, consultez l’éditeur graphique et le Gestionnaire de fichiers Windows.
Une fenêtre de fractionnement prend en charge des barres de défilement spéciales (à part les barres de défilement que les volets peuvent avoir). Ces barres de défilement sont des enfants de l’objet CSplitterWnd
et sont partagées avec les volets.
Vous créez ces barres de défilement spéciales lorsque vous créez la fenêtre de fractionnement. Par exemple, une CSplitterWnd
ligne, deux colonnes et le WS_VSCROLL
style affiche une barre de défilement verticale partagée par les deux volets. Lorsque l’utilisateur déplace la barre de défilement, WM_VSCROLL
les messages sont envoyés aux deux volets. Lorsque les volets définissent la position de la barre de défilement, la barre de défilement partagée est définie.
Pour plus d’informations sur les fenêtres de fractionnement, consultez la Note technique 29.
Pour plus d’informations sur la création de fenêtres de fractionnement dynamique, consultez :
Exemple MFC Scribble
Exemple MFC
VIEWEX
.
Hiérarchie d'héritage
CSplitterWnd
Spécifications
En-tête : afxext.h
CSplitterWnd::ActivateNext
Appelé par l’infrastructure pour exécuter la commande Volet suivant ou Volet précédent.
virtual void ActivateNext(BOOL bPrev = FALSE);
Paramètres
bPrev
Indique la fenêtre à activer. TRUE
pour les précédents ; FALSE
pour la prochaine fois.
Notes
Cette fonction membre est une commande de haut niveau utilisée par la CView
classe pour déléguer à l’implémentation CSplitterWnd
.
CSplitterWnd::CanActivateNext
Appelé par l’infrastructure pour vérifier si la commande Volet suivant ou Volet précédent est actuellement possible.
virtual BOOL CanActivateNext(BOOL bPrev = FALSE);
Paramètres
bPrev
Indique la fenêtre à activer. TRUE
pour les précédents ; FALSE
pour la prochaine fois.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction membre est une commande de haut niveau utilisée par la CView
classe pour déléguer à l’implémentation CSplitterWnd
.
CSplitterWnd::Create
Pour créer une fenêtre de fractionnement dynamique, appelez la Create
fonction membre.
virtual BOOL Create(
CWnd* pParentWnd,
int nMaxRows,
int nMaxCols,
SIZE sizeMin,
CCreateContext* pContext,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
UINT nID = AFX_IDW_PANE_FIRST);
Paramètres
pParentWnd
Fenêtre d’image parente de la fenêtre de fractionnement.
nMaxRows
Nombre maximal de lignes dans la fenêtre de fractionnement. Cette valeur ne doit pas dépasser 2.
nMaxCols
Nombre maximal de colonnes dans la fenêtre de fractionnement. Cette valeur ne doit pas dépasser 2.
sizeMin
Spécifie la taille minimale à laquelle un volet peut être affiché.
pContext
Pointeur vers une CCreateContext
structure. Dans la plupart des cas, il peut s’agir de la pContext
fenêtre de cadre parente.
dwStyle
Spécifie le style de fenêtre.
nID
ID de fenêtre enfant de la fenêtre. L’ID peut être AFX_IDW_PANE_FIRST
sauf si la fenêtre de fractionnement est imbriquée à l’intérieur d’une autre fenêtre de fractionnement.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Vous pouvez incorporer un CSplitterWnd
objet ou CMDIChildWnd
un parent CFrameWnd
en effectuant les étapes suivantes :
Incorporer une
CSplitterWnd
variable membre dans le cadre parent.Remplacez la fonction membre de l’image
CFrameWnd::OnCreateClient
parente.Appelez la
Create
fonction membre à partir de l’élément substituéOnCreateClient
.
Lorsque vous créez une fenêtre de fractionnement à partir d’un cadre parent, passez le paramètre du pContext
cadre parent à la fenêtre de fractionnement. Sinon, ce paramètre peut être NULL
.
La hauteur minimale initiale de ligne et la largeur de colonne d’une fenêtre de fractionnement dynamique sont définies par le sizeMin
paramètre. Ces minimums, qui déterminent si un volet est trop petit pour être affiché dans son intégralité, peuvent être modifiés avec les fonctions membres et SetColumnInfo
les SetRowInfo
fonctions membres.
Pour plus d’informations sur les fenêtres de fractionnement dynamique, consultez « Splitter Windows » dans l’article Plusieurs types de documents, affichages et fenêtres frame, Note technique 29 et vue d’ensemble de la CSplitterWnd
classe.
Exemple
// the following function is created by the MFC Application Wizard
// when you select Split window from the User Interface Features tab:
BOOL CMyChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: adjust the number of rows, columns
CSize(10, 10), // TODO: adjust the minimum pane size
pContext);
}
CSplitterWnd::CreateScrollBarCtrl
Appelé par l’infrastructure pour créer un contrôle de barre de défilement partagée.
virtual BOOL CreateScrollBarCtrl(
DWORD dwStyle,
UINT nID);
Paramètres
dwStyle
Spécifie le style de fenêtre.
nID
ID de fenêtre enfant de la fenêtre. L’ID peut être AFX_IDW_PANE_FIRST
sauf si la fenêtre de fractionnement est imbriquée à l’intérieur d’une autre fenêtre de fractionnement.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Remplacez CreateScrollBarCtrl
pour inclure des contrôles supplémentaires en regard d’une barre de défilement. Le comportement par défaut consiste à créer des contrôles de barre de défilement Windows normaux.
CSplitterWnd::CreateStatic
Pour créer une fenêtre de fractionnement statique, appelez la CreateStatic
fonction membre.
virtual BOOL CreateStatic(
CWnd* pParentWnd,
int nRows,
int nCols,
DWORD dwStyle = WS_CHILD | WS_VISIBLE,
UINT nID = AFX_IDW_PANE_FIRST);
Paramètres
pParentWnd
Fenêtre d’image parente de la fenêtre de fractionnement.
nRows
Nombre de lignes. Cette valeur ne doit pas dépasser 16.
nCols
Nombre de colonnes. Cette valeur ne doit pas dépasser 16.
dwStyle
Spécifie le style de fenêtre.
nID
ID de fenêtre enfant de la fenêtre. L’ID peut être AFX_IDW_PANE_FIRST
sauf si la fenêtre de fractionnement est imbriquée à l’intérieur d’une autre fenêtre de fractionnement.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Il CSplitterWnd
est généralement incorporé dans un parent CFrameWnd
ou CMDIChildWnd
un objet en effectuant les étapes suivantes :
Incorporer une
CSplitterWnd
variable membre dans le cadre parent.Remplacez la fonction membre de l’image
OnCreateClient
parente.Appelez la
CreateStatic
fonction membre à partir de l’élément substituéCFrameWnd::OnCreateClient
.
Une fenêtre de fractionnement statique contient un nombre fixe de volets, souvent à partir de différentes classes.
Lorsque vous créez une fenêtre de fractionnement statique, vous devez en même temps créer tous ses volets. La CreateView
fonction membre est généralement utilisée à cet effet, mais vous pouvez également créer d’autres classes nonview.
La hauteur de ligne minimale initiale et la largeur de colonne d’une fenêtre de fractionnement statique est 0. Ces minimums, qui déterminent quand un volet est trop petit pour être affiché dans son intégralité, peuvent être modifiés avec les fonctions membres et SetColumnInfo
les SetRowInfo
fonctions membres.
Pour ajouter des barres de défilement à une fenêtre de fractionnement statique, ajoutez les WS_HSCROLL
styles à WS_VSCROLL
dwStyle
.
Consultez « Splitter Windows » dans l’article Plusieurs types de documents, vues et fenêtres frame, Note technique 29 et vue d’ensemble de la CSplitterWnd
classe pour plus d’informations sur les fenêtres de fractionnement statiques.
CSplitterWnd::CreateView
Crée les volets d’une fenêtre de fractionnement statique.
virtual BOOL CreateView(
int row,
int col,
CRuntimeClass* pViewClass,
SIZE sizeInit,
CCreateContext* pContext);
Paramètres
row
Spécifie la ligne de fenêtre de fractionnement dans laquelle placer la nouvelle vue.
col
Spécifie la colonne de fenêtre de fractionnement dans laquelle placer la nouvelle vue.
pViewClass
Spécifie la CRuntimeClass
nouvelle vue.
sizeInit
Spécifie la taille initiale de la nouvelle vue.
pContext
Pointeur vers un contexte de création utilisé pour créer la vue (généralement la pContext
fonction membre substituée CFrameWnd::OnCreateClient
de l’image parente dans laquelle la fenêtre de fractionnement est créée).
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Tous les volets d’une fenêtre de fractionnement statique doivent être créés avant que l’infrastructure n’affiche le séparateur.
L’infrastructure appelle également cette fonction membre pour créer de nouveaux volets lorsque l’utilisateur d’une fenêtre de fractionnement dynamique fractionne un volet, une ligne ou une colonne.
Exemple
// this function creates the panes for a static splitter window
BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext *pContext)
{
m_bSplitterCreated = m_wndSplitter.CreateStatic(this, 1, 2);
// CMyView and CMyOtherView are user-defined views derived from CView
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyView), CSize(0, 0),
pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyOtherView), CSize(0, 0),
pContext);
return (m_bSplitterCreated);
}
CSplitterWnd::CSplitterWnd
Appelez pour construire un CSplitterWnd
objet.
CSplitterWnd();
Notes
Construisez un CSplitterWnd
objet en deux étapes. Tout d’abord, appelez le constructeur, qui crée l’objet CSplitterWnd
, puis appelez la Create
fonction membre, qui crée la fenêtre de fractionnement et l’attache à l’objet CSplitterWnd
.
CSplitterWnd::DeleteColumn
Supprime une colonne de la fenêtre de fractionnement.
virtual void DeleteColumn(int colDelete);
Paramètres
colDelete
Spécifie la colonne à supprimer.
Notes
Cette fonction membre est appelée par l’infrastructure pour implémenter la logique de la fenêtre de fractionnement dynamique (autrement dit, si la fenêtre de fractionnement a le SPLS_DYNAMIC_SPLIT
style). Il peut être personnalisé, ainsi que la fonction CreateView
virtuelle, pour implémenter des séparateurs dynamiques plus avancés.
CSplitterWnd::DeleteRow
Supprime une ligne de la fenêtre de fractionnement.
virtual void DeleteRow(int rowDelete);
Paramètres
rowDelete
Spécifie la ligne à supprimer.
Notes
Cette fonction membre est appelée par l’infrastructure pour implémenter la logique de la fenêtre de fractionnement dynamique (autrement dit, si la fenêtre de fractionnement a le SPLS_DYNAMIC_SPLIT
style). Il peut être personnalisé, ainsi que la fonction CreateView
virtuelle, pour implémenter des séparateurs dynamiques plus avancés.
CSplitterWnd::DeleteView
Supprime une vue de la fenêtre de fractionnement.
virtual void DeleteView(
int row,
int col);
Paramètres
row
Spécifie la ligne de fenêtre de fractionnement à laquelle supprimer l’affichage.
col
Spécifie la colonne de fenêtre de fractionnement à laquelle supprimer la vue.
Notes
Si la vue active est en cours de suppression, la vue suivante devient active. L’implémentation par défaut suppose que la vue est automatiquement supprimée dans PostNcDestroy
.
Cette fonction membre est appelée par l’infrastructure pour implémenter la logique de la fenêtre de fractionnement dynamique (autrement dit, si la fenêtre de fractionnement a le SPLS_DYNAMIC_SPLIT
style). Il peut être personnalisé, ainsi que la fonction CreateView
virtuelle, pour implémenter des séparateurs dynamiques plus avancés.
CSplitterWnd::DoKeyboardSplit
Exécute la commande de fractionnement du clavier, généralement « Fractionnement de fenêtre ».
virtual BOOL DoKeyboardSplit();
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction membre est une commande de haut niveau utilisée par la CView
classe pour déléguer à l’implémentation CSplitterWnd
.
CSplitterWnd::DoScroll
Effectue le défilement synchronisé des fenêtres fractionnées.
virtual BOOL DoScroll(
CView* pViewFrom,
UINT nScrollCode,
BOOL bDoScroll = TRUE);
Paramètres
pViewFrom
Pointeur vers la vue à partir de laquelle provient le message de défilement.
nScrollCode
Code de barre de défilement qui indique la demande de défilement de l’utilisateur. Ce paramètre se compose de deux parties : un octet de bas ordre, qui détermine le type de défilement se produisant horizontalement et un octet de classement élevé, qui détermine le type de défilement se produisant verticalement :
SB_BOTTOM
Fait défiler vers le bas.SB_LINEDOWN
Fait défiler une ligne vers le bas.SB_LINEUP
Fait défiler une ligne vers le haut.SB_PAGEDOWN
Fait défiler une page vers le bas.SB_PAGEUP
Fait défiler une page vers le haut.SB_TOP
Fait défiler vers le haut.
bDoScroll
Détermine si l’action de défilement spécifiée se produit. Si bDoScroll
c’est TRUE
le cas (c’est-à-dire si une fenêtre enfant existe et si les fenêtres fractionnées ont une plage de défilement), l’action de défilement spécifiée peut se produire ; si bDoScroll
FALSE
c’est le cas (autrement dit, si aucune fenêtre enfant n’existe ou si les vues fractionnées n’ont pas de plage de défilement), le défilement ne se produit pas.
Valeur de retour
Différent de zéro si le défilement synchronisé se produit ; sinon 0.
Notes
Cette fonction membre est appelée par l’infrastructure pour effectuer le défilement synchronisé des fenêtres fractionnées lorsque la vue reçoit un message de défilement. Remplacez la demande d’une action par l’utilisateur avant que le défilement synchronisé soit autorisé.
CSplitterWnd::DoScrollBy
Fait défiler les fenêtres fractionnées par un nombre donné de pixels.
virtual BOOL DoScrollBy(
CView* pViewFrom,
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Paramètres
pViewFrom
Pointeur vers la vue à partir de laquelle provient le message de défilement.
sizeScroll
Nombre de pixels à faire défiler horizontalement et verticalement.
bDoScroll
Détermine si l’action de défilement spécifiée se produit. Si bDoScroll
c’est TRUE
le cas (c’est-à-dire si une fenêtre enfant existe et si les fenêtres fractionnées ont une plage de défilement), l’action de défilement spécifiée peut se produire ; si bDoScroll
FALSE
c’est le cas (autrement dit, si aucune fenêtre enfant n’existe ou si les vues fractionnées n’ont pas de plage de défilement), le défilement ne se produit pas.
Valeur de retour
Différent de zéro si le défilement synchronisé se produit ; sinon 0.
Notes
Cette fonction membre est appelée par l’infrastructure en réponse à un message de défilement, pour effectuer le défilement synchronisé des fenêtres fractionnées par la quantité, en pixels, indiquée par sizeScroll
. Les valeurs positives indiquent le défilement vers le bas et vers la droite ; les valeurs négatives indiquent le défilement vers le haut et vers la gauche.
Remplacez pour exiger une action par l’utilisateur avant d’autoriser le défilement.
CSplitterWnd::GetActivePane
Détermine le volet actif à partir du focus ou de l’affichage actif dans le cadre.
virtual CWnd* GetActivePane(
int* pRow = NULL,
int* pCol = NULL);
Paramètres
pRow
Pointeur vers un int
pointeur pour récupérer le numéro de ligne du volet actif.
pCol
Pointeur vers un int
pointeur pour récupérer le numéro de colonne du volet actif.
Valeur de retour
Pointeur vers le volet actif. NULL
si aucun volet actif n’existe.
Notes
Cette fonction membre est appelée par l’infrastructure pour déterminer le volet actif dans une fenêtre de fractionnement. Remplacez la demande d’une action par l’utilisateur avant d’obtenir le volet actif.
CSplitterWnd::GetColumnCount
Retourne le nombre de colonnes du volet actif.
int GetColumnCount() const;
Valeur de retour
Retourne le nombre actuel de colonnes dans le séparateur. Pour un séparateur statique, il s’agit également du nombre maximal de colonnes.
CSplitterWnd::GetColumnInfo
Retourne des informations sur la colonne spécifiée.
void GetColumnInfo(
int col,
int& cxCur,
int& cxMin) const;
Paramètres
col
Spécifie une colonne.
cxCur
Référence à une int
valeur à définir sur la largeur actuelle de la colonne.
cxMin
Référence à une int
valeur à définir sur la largeur minimale actuelle de la colonne.
CSplitterWnd::GetPane
Retourne le volet à la ligne et à la colonne spécifiées.
CWnd* GetPane(
int row,
int col) const;
Paramètres
row
Spécifie une ligne.
col
Spécifie une colonne.
Valeur de retour
Retourne le volet à la ligne et à la colonne spécifiées. Le volet retourné est généralement une CView
classe dérivée de -.
CSplitterWnd::GetRowCount
Retourne le nombre de lignes du volet actuel.
int GetRowCount() const;
Valeur de retour
Retourne le nombre actuel de lignes dans la fenêtre de fractionnement. Pour une fenêtre de fractionnement statique, il s’agit également du nombre maximal de lignes.
CSplitterWnd::GetRowInfo
Retourne des informations sur la ligne spécifiée.
void GetRowInfo(
int row,
int& cyCur,
int& cyMin) const;
Paramètres
row
Spécifie une ligne.
cyCur
Référence à définir sur int
la hauteur actuelle de la ligne en pixels.
cyMin
Référence à définir sur int
la hauteur minimale actuelle de la ligne en pixels.
Notes
Appelez cette fonction membre pour obtenir des informations sur la ligne spécifiée. Le cyCur
paramètre est rempli avec la hauteur actuelle de la ligne spécifiée et cyMin
est rempli avec la hauteur minimale de la ligne.
CSplitterWnd::GetScrollStyle
Retourne le style de barre de défilement partagée pour la fenêtre de fractionnement.
DWORD GetScrollStyle() const;
Valeur de retour
Un ou plusieurs des indicateurs de style windows suivants, s’ils réussissent :
WS_HSCROLL
Si le séparateur gère actuellement les barres de défilement horizontales partagées.WS_VSCROLL
Si le séparateur gère actuellement les barres de défilement verticales partagées.
Si zéro, la fenêtre de fractionnement ne gère actuellement aucune barre de défilement partagée.
CSplitterWnd::IdFromRowCol
Obtient l’ID de fenêtre enfant pour le volet sur la ligne et la colonne spécifiées.
int IdFromRowCol(
int row,
int col) const;
Paramètres
row
Spécifie la ligne de fenêtre de fractionnement.
col
Spécifie la colonne de fenêtre de fractionnement.
Valeur de retour
ID de fenêtre enfant pour le volet.
Notes
Cette fonction membre est utilisée pour créer des non-vues en tant que volets et peut être appelée avant l’existence du volet.
Exemple
HBRUSH CMySplitterWnd::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CSplitterWnd::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_LISTBOX &&
pWnd->GetDlgCtrlID() == IdFromRowCol(1, 0))
{
// Pane 1,0 is a list box. Set the color of the text to be blue.
pDC->SetBkColor(m_BkColor);
pDC->SetTextColor(RGB(0, 0, 255));
return (HBRUSH)m_hbrListBoxBkgnd.GetSafeHandle();
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
CSplitterWnd::IsChildPane
Détermine s’il pWnd
s’agit actuellement d’un volet enfant de cette fenêtre de fractionnement.
BOOL IsChildPane(
CWnd* pWnd,
int* pRow,
int* pCol);
Paramètres
pWnd
Pointeur vers un CWnd
objet à tester.
pRow
Pointeur vers un int
pointeur dans lequel stocker le numéro de ligne.
pCol
Pointeur vers un int
pointeur dans lequel stocker un numéro de colonne.
Valeur de retour
S’il n’est pas différent de zéro, pWnd
il s’agit actuellement d’un volet enfant de cette fenêtre de fractionnement et pRow
pCol
est rempli avec la position du volet dans la fenêtre de fractionnement. Si pWnd
ce n’est pas un volet enfant de cette fenêtre de fractionnement, 0 est retourné.
Notes
Dans les versions de Visual C++ antérieures à la version 6.0, cette fonction a été définie comme étant
BOOL IsChildPane(CWnd* pWnd, int& row, int& col);
Cette version est désormais obsolète et ne doit pas être utilisée.
CSplitterWnd::IsTracking
Appelez cette fonction membre pour déterminer si la barre de fractionnement dans la fenêtre est en cours de déplacement.
BOOL IsTracking();
Valeur de retour
Différent de zéro si une opération de fractionnement est en cours ; sinon 0.
CSplitterWnd::OnDrawSplitter
Affiche une image d’une fenêtre fractionnée.
virtual void OnDrawSplitter(
CDC* pDC,
ESplitType nType,
const CRect& rect);
Paramètres
pDC
Pointeur vers le contexte de l’appareil dans lequel dessiner. Si pDC
c’est NULL
le cas, CWnd::RedrawWindow
il est appelé par l’infrastructure et aucune fenêtre fractionnée n’est dessinée.
nType
Valeur du enum ESplitType
, qui peut être l’une des suivantes :
splitBox
Zone de glissement du séparateur.splitBar
Barre qui apparaît entre les deux fenêtres fractionnées.splitIntersection
Intersection des fenêtres fractionnées. Cet élément ne sera pas appelé lors de l’exécution sur Windows 95/98.splitBorder
Bordures de fenêtre fractionnée.
rect
Référence à un CRect
objet spécifiant la taille et la forme des fenêtres fractionnées.
Notes
Cette fonction membre est appelée par l’infrastructure pour dessiner et spécifier les caractéristiques exactes d’une fenêtre de fractionnement. Remplacez OnDrawSplitter
la personnalisation avancée de l’image pour les différents composants graphiques d’une fenêtre de fractionnement. L’imagerie par défaut est similaire au séparateur dans Microsoft Works pour Windows ou Microsoft Windows 95/98, dans ce cas, les intersections des barres de fractionnement sont fusionnées.
Pour plus d’informations sur les fenêtres de fractionnement dynamique, consultez « Splitter Windows » dans l’article Plusieurs types de documents, affichages et fenêtres frame, Note technique 29 et vue d’ensemble de la CSplitterWnd
classe.
CSplitterWnd::OnInvertTracker
Affiche l’image d’une fenêtre fractionnée de la même taille et de la même forme que la fenêtre cadre.
virtual void OnInvertTracker(const CRect& rect);
Paramètres
rect
Référence à un CRect
objet spécifiant le rectangle de suivi.
Notes
Cette fonction membre est appelée par l’infrastructure pendant le redimensionnement des séparateurs. Remplacez OnInvertTracker
la personnalisation avancée de l’image de la fenêtre de fractionnement. L’imagerie par défaut est similaire au séparateur dans Microsoft Works pour Windows ou Microsoft Windows 95/98, dans ce cas, les intersections des barres de fractionnement sont fusionnées.
Pour plus d’informations sur les fenêtres de fractionnement dynamique, consultez « Splitter Windows » dans l’article Plusieurs types de documents, affichages et fenêtres frame, Note technique 29 et vue d’ensemble de la CSplitterWnd
classe.
CSplitterWnd::RecalcLayout
Appelez pour réafficher la fenêtre de fractionnement après avoir ajusté la taille de ligne ou de colonne.
virtual void RecalcLayout();
Notes
Appelez cette fonction membre pour réafficher correctement la fenêtre de fractionnement après avoir ajusté les tailles de ligne et de colonne avec les fonctions membres et SetColumnInfo
les SetRowInfo
fonctions membres. Si vous modifiez les tailles de ligne et de colonne dans le cadre du processus de création avant que la fenêtre de fractionnement soit visible, il n’est pas nécessaire d’appeler cette fonction membre.
L’infrastructure appelle cette fonction membre chaque fois que l’utilisateur redimensionne la fenêtre de fractionnement ou déplace un fractionnement.
Exemple
Consultez l’exemple pour CSplitterWnd::SetColumnInfo
.
CSplitterWnd::SetActivePane
Définit un volet comme actif dans le cadre.
virtual void SetActivePane(
int row,
int col,
CWnd* pWnd = NULL);
Paramètres
row
Si pWnd
c’est NULL
le cas, spécifie la ligne du volet qui sera active.
col
Si pWnd
c’est NULL
le cas, spécifie la colonne dans le volet qui sera active.
pWnd
Pointeur vers un objet CWnd
. Si NULL
, le volet spécifié par row
et col
est défini actif. Si ce n’est pas NULL
le cas, spécifie le volet défini actif.
Notes
Cette fonction membre est appelée par l’infrastructure pour définir un volet comme actif lorsque l’utilisateur modifie le focus sur un volet dans la fenêtre frame. Vous pouvez appeler SetActivePane
explicitement pour modifier le focus sur l’affichage spécifié.
Spécifiez le volet en fournissant une ligne et une colonne, ou en fournissant pWnd
.
CSplitterWnd::SetColumnInfo
Appel pour définir les informations de colonne spécifiées.
void SetColumnInfo(
int col,
int cxIdeal,
int cxMin);
Paramètres
col
Spécifie une colonne de fenêtre de fractionnement.
cxIdeal
Spécifie une largeur idéale pour la colonne de fenêtre de fractionnement en pixels.
cxMin
Spécifie une largeur minimale pour la colonne de fenêtre de fractionnement en pixels.
Notes
Appelez cette fonction membre pour définir une nouvelle largeur minimale et une largeur idéale pour une colonne. La valeur minimale de la colonne détermine quand la colonne sera trop petite pour être entièrement affichée.
Lorsque l’infrastructure affiche la fenêtre de fractionnement, elle place les volets dans les colonnes et les lignes en fonction de leurs dimensions idéales, en travaillant de l’angle supérieur gauche au coin inférieur droit de la zone cliente de la fenêtre de fractionnement.
Exemple
void CChildFrame::OnSize(UINT nType, int cx, int cy)
{
CMDIChildWnd::OnSize(nType, cx, cy);
CRect rect;
GetWindowRect(&rect);
if (m_bSplitterCreated) // m_bSplitterCreated set in OnCreateClient
{
m_wndSplitter.SetColumnInfo(0, rect.Width() / 2, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width() / 2, 10);
m_wndSplitter.RecalcLayout();
}
}
CSplitterWnd::SetRowInfo
Appel pour définir les informations de ligne spécifiées.
void SetRowInfo(
int row,
int cyIdeal,
int cyMin);
Paramètres
row
Spécifie une ligne de fenêtre de fractionnement.
cyIdeal
Spécifie une hauteur idéale pour la ligne de fenêtre de fractionnement en pixels.
cyMin
Spécifie une hauteur minimale pour la ligne de fenêtre de fractionnement en pixels.
Notes
Appelez cette fonction membre pour définir une nouvelle hauteur minimale et une hauteur idéale pour une ligne. La valeur minimale de ligne détermine quand la ligne sera trop petite pour être entièrement affichée.
Lorsque l’infrastructure affiche la fenêtre de fractionnement, elle place les volets dans les colonnes et les lignes en fonction de leurs dimensions idéales, en travaillant de l’angle supérieur gauche au coin inférieur droit de la zone cliente de la fenêtre de fractionnement.
CSplitterWnd::SetScrollStyle
Spécifie le nouveau style de défilement pour la prise en charge de la barre de défilement partagée de la fenêtre de fractionnement.
void SetScrollStyle(DWORD dwStyle);
Paramètres
dwStyle
Nouveau style de défilement pour la prise en charge de la barre de défilement partagée de la fenêtre de fractionnement, qui peut être l’une des valeurs suivantes :
WS_HSCROLL
Créer/afficher des barres de défilement partagées horizontales.WS_VSCROLL
Créer/afficher des barres de défilement partagées verticales.
Notes
Une fois qu’une barre de défilement est créée, elle ne sera pas détruite même si SetScrollStyle
elle est appelée sans ce style ; au lieu de cela, ces barres de défilement sont masquées. Cela permet aux barres de défilement de conserver leur état même si elles sont masquées. Après l’appel SetScrollStyle
, il est nécessaire d’appeler RecalcLayout
toutes les modifications à prendre effet.
CSplitterWnd::SplitColumn
Indique où une fenêtre frame se fractionne verticalement.
virtual BOOL SplitColumn(int cxBefore);
Paramètres
cxBefore
Position, en pixels, avant laquelle le fractionnement se produit.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction membre est appelée lorsqu’une fenêtre de fractionnement vertical est créée. SplitColumn
indique l’emplacement par défaut où se produit le fractionnement.
SplitColumn
est appelé par l’infrastructure pour implémenter la logique de la fenêtre de fractionnement dynamique (autrement dit, si la fenêtre de fractionnement a le SPLS_DYNAMIC_SPLIT
style). Il peut être personnalisé, ainsi que la fonction CreateView
virtuelle, pour implémenter des séparateurs dynamiques plus avancés.
CSplitterWnd::SplitRow
Indique où une fenêtre frame se fractionne horizontalement.
virtual BOOL SplitRow(int cyBefore);
Paramètres
cyBefore
Position, en pixels, avant laquelle le fractionnement se produit.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction membre est appelée lorsqu’une fenêtre de fractionnement horizontal est créée. SplitRow
indique l’emplacement par défaut où se produit le fractionnement.
SplitRow
est appelé par l’infrastructure pour implémenter la logique de la fenêtre de fractionnement dynamique (autrement dit, si la fenêtre de fractionnement a le SPLS_DYNAMIC_SPLIT
style). Il peut être personnalisé, ainsi que la fonction CreateView
virtuelle, pour implémenter des séparateurs dynamiques plus avancés.
CSplitterWnd::OnDraw
Appelé par l’infrastructure pour dessiner la fenêtre de fractionnement.
virtual void OnDraw(CDC* pDC);
Paramètres
pDC
Pointeur vers un contexte de périphérique.
Notes
Voir aussi
Exemple MFC VIEWEX
CWnd
Classe
Graphique hiérarchique
CView
Classe