Partager via


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 CViewCWnd 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 :

  1. Incorporer une CSplitterWnd variable membre dans le cadre parent.

  2. Remplacez la fonction membre de l’image CFrameWnd::OnCreateClient parente.

  3. À partir de l’élément substitué OnCreateClient, appelez la Create fonction ou CreateStatic membre de CSplitterWnd.

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 :

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

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 :

  1. Incorporer une CSplitterWnd variable membre dans le cadre parent.

  2. Remplacez la fonction membre de l’image CFrameWnd::OnCreateClient parente.

  3. 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 :

  1. Incorporer une CSplitterWnd variable membre dans le cadre parent.

  2. Remplacez la fonction membre de l’image OnCreateClient parente.

  3. 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 CreateViewvirtuelle, 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 CreateViewvirtuelle, 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 CreateViewvirtuelle, 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 CViewclasse 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 NULLle 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 NULLle cas, spécifie la ligne du volet qui sera active.

col
Si pWnd c’est NULLle 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 NULLle 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 CreateViewvirtuelle, 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 CreateViewvirtuelle, 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