Sdílet prostřednictvím


CSplitterWnd Třída

Poskytuje funkce rozděleného okna, což je okno, které obsahuje více podoken.

Syntaxe

class CSplitterWnd : public CWnd

Členové

Veřejné konstruktory

Název Popis
CSplitterWnd::CSplitterWnd Volání k vytvoření objektu CSplitterWnd

Veřejné metody

Název Popis
CSplitterWnd::ActivateNext Provede příkaz Další podokno nebo předchozí podokno.
CSplitterWnd::CanActivateNext Zkontroluje, jestli je aktuálně možné, jestli je možné použít další podokno nebo předchozí podokno.
CSplitterWnd::Create Voláním vytvořte dynamické okno rozdělovače a připojte ho k objektu CSplitterWnd .
CSplitterWnd::CreateScrollBarCtrl Vytvoří sdílený ovládací prvek posuvníku.
CSplitterWnd::CreateStatic Voláním vytvoříte statické rozdělovací okno a připojíte ho k objektu CSplitterWnd .
CSplitterWnd::CreateView Volání pro vytvoření podokna v rozděleném okně
CSplitterWnd::DeleteColumn Odstraní sloupec z okna rozdělovače.
CSplitterWnd::DeleteRow Odstraní řádek z okna rozdělovače.
CSplitterWnd::DeleteView Odstraní zobrazení z okna rozdělovače.
CSplitterWnd::DoKeyboardSplit Provede příkaz rozdělení klávesnice, obvykle "Rozdělení okna".
CSplitterWnd::DoScroll Provádí synchronizované posouvání rozdělených oken.
CSplitterWnd::DoScrollBy Posune rozdělená okna podle zadaného počtu pixelů.
CSplitterWnd::GetActivePane Určuje aktivní podokno z fokusu nebo aktivního zobrazení v rámci.
CSplitterWnd::GetColumnCount Vrátí počet sloupců aktuálního podokna.
CSplitterWnd::GetColumnInfo Vrátí informace o zadaném sloupci.
CSplitterWnd::GetPane Vrátí podokno na zadaném řádku a sloupci.
CSplitterWnd::GetRowCount Vrátí počet řádků aktuálního podokna.
CSplitterWnd::GetRowInfo Vrátí informace o zadaném řádku.
CSplitterWnd::GetScrollStyle Vrátí styl sdíleného posuvníku.
CSplitterWnd::IdFromRowCol Vrátí ID podřízeného okna podokna v zadaném řádku a sloupci.
CSplitterWnd::IsChildPane Voláním určíte, jestli je okno aktuálně podřízeným podoknem tohoto rozdělovače.
CSplitterWnd::IsTracking Určuje, jestli se rozdělovač právě přesouvá.
CSplitterWnd::RecalcLayout Volání k opětovnému zobrazení rozdělovače po úpravě velikosti řádku nebo sloupce
CSplitterWnd::SetActivePane Nastaví podokno tak, aby bylo aktivní v rámci.
CSplitterWnd::SetColumnInfo Volání pro nastavení zadaných informací o sloupci
CSplitterWnd::SetRowInfo Volání pro nastavení zadaných informací o řádku
CSplitterWnd::SetScrollStyle Určuje nový styl posuvníku pro podporu sdíleného posuvníku v okně rozdělovače.
CSplitterWnd::SplitColumn Určuje, kde se okno s rámečkem rozdělí svisle.
CSplitterWnd::SplitRow Určuje, kde se okno rámečku vodorovně rozdělí.

Chráněné metody

Název Popis
CSplitterWnd::OnDraw Volá se rozhraním pro vykreslení rozdělovače.
CSplitterWnd::OnDrawSplitter Vykreslí obrázek rozděleného okna.
CSplitterWnd::OnInvertTracker Vykreslí obrázek rozděleného okna na stejnou velikost a tvar jako okno s rámečkem.

Poznámky

Podokno je obvykle objekt specifický pro aplikaci odvozený z CView, ale může to být libovolný CWnd objekt, který má příslušné ID podřízeného okna.

Objekt CSplitterWnd je obvykle vložen do nadřazeného CFrameWnd objektu nebo CMDIChildWnd objektu. Vytvořte CSplitterWnd objekt pomocí následujícího postupu:

  1. Vložte členovou proměnnou CSplitterWnd do nadřazeného rámce.

  2. Přepište členskou funkci nadřazeného CFrameWnd::OnCreateClient rámce.

  3. V rámci přepsání OnCreateClientvolejte Create funkci nebo CreateStatic člena CSplitterWnd.

Voláním Create členské funkce vytvořte dynamické okno rozdělovače. Dynamické rozdělovací okno se obvykle používá k vytvoření a posouvání řady jednotlivých podoken nebo zobrazení stejného dokumentu. Architektura automaticky vytvoří počáteční podokno pro rozdělovač; rozhraní pak vytvoří, změní velikost a odstraní další podokna, protože uživatel pracuje s ovládacími prvky okna rozdělovače.

Při volání Createzadáte minimální výšku řádku a šířku sloupce, které určují, kdy jsou podokna příliš malá, aby se plně zobrazila. Po volání Createmůžete tato minimum upravit voláním SetColumnInfo funkcí a SetRowInfo členských funkcí.

Pomocí SetColumnInfo funkcí a SetRowInfo členů můžete také nastavit "ideální" šířku sloupce a "ideální" výšku řádku. Když architektura zobrazí rozdělovač, nejprve zobrazí nadřazený rámec a potom rozdělovač okno. Architektura pak rozloží podokna ve sloupcích a řádcích podle jejich ideálních rozměrů, které fungují z levého horního rohu pravého dolního rohu klientské oblasti rozdělovače.

Všechna podokna v dynamickém rozděleném okně musí mít stejnou třídu. Mezi známé aplikace, které podporují dynamická okna rozdělovače, patří Microsoft Word a Microsoft Excel.

CreateStatic Pomocí členské funkce vytvořte statické rozdělovací okno. Uživatel může změnit pouze velikost podoken ve statickém rozděleném okně, nikoli v jeho čísle nebo pořadí.

Při vytváření statického rozdělovače musíte konkrétně vytvořit všechna podokna statického rozdělovače. Před vrácením členské funkce nadřazeného rámce OnCreateClient nezapomeňte vytvořit všechna podokna, jinak architektura okno nezobrazí správně.

Členová CreateStatic funkce automaticky inicializuje statický rozdělovač s minimální výškou řádku a šířkou sloupce 0. Po volání Createupravte tato minimum voláním SetColumnInfo a SetRowInfo členské funkce. Můžete také použít SetColumnInfo a SetRowInfo po volání CreateStatic označit požadované ideální rozměry podokna.

Jednotlivé podokna statického rozdělovače často patří do různých tříd. Příklady statických oken rozdělovače naleznete v grafickém editoru a Správci souborů systému Windows.

Rozdělené okno podporuje speciální posuvníky (kromě posuvníků, které mohou podokna obsahovat). Tyto posuvníky jsou podřízené objektu CSplitterWnd a sdílí se s podokny.

Tyto speciální posuvníky vytvoříte při vytváření rozdělovače. Například řádek s jedním řádkem CSplitterWnd , dvěma sloupci a WS_VSCROLL stylem se zobrazí svislý posuvník sdílený dvěma podokny. Když uživatel přesune posuvník, WM_VSCROLL zprávy se posílají do obou podoken. Když podokna nastaví pozici posuvníku, nastaví se sdílený posuvník.

Další informace o rozdělovačích naleznete v technické poznámce 29.

Další informace o tom, jak vytvořit dynamická okna rozdělovačů, najdete tady:

Hierarchie dědičnosti

CObject

CCmdTarget

CWnd

CSplitterWnd

Požadavky

Záhlaví: afxext.h

CSplitterWnd::ActivateNext

Volá se rozhraním k provedení příkazu Další podokno nebo předchozí podokno.

virtual void ActivateNext(BOOL bPrev = FALSE);

Parametry

bPrev
Určuje, které okno se má aktivovat. TRUE pro předchozí; FALSE pro další.

Poznámky

Tato členová funkce je příkaz vysoké úrovně, který třída používá CView k delegování na implementaci CSplitterWnd .

CSplitterWnd::CanActivateNext

Zavolá se rozhraním a zkontroluje, jestli je aktuálně možné použít další podokno nebo předchozí podokno.

virtual BOOL CanActivateNext(BOOL bPrev = FALSE);

Parametry

bPrev
Určuje, které okno se má aktivovat. TRUE pro předchozí; FALSE pro další.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce je příkaz vysoké úrovně, který třída používá CView k delegování na implementaci CSplitterWnd .

CSplitterWnd::Create

Pokud chcete vytvořit dynamické rozdělovací okno, zavolejte členovou Create funkci.

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);

Parametry

pParentWnd
Okno nadřazeného rámce okna rozdělovače.

nMaxRows
Maximální počet řádků v okně rozdělovače. Tato hodnota nesmí překročit 2.

nMaxCols
Maximální počet sloupců v okně rozdělovače Tato hodnota nesmí překročit 2.

sizeMin
Určuje minimální velikost, ve které se může zobrazit podokno.

pContext
Ukazatel na CCreateContext strukturu. Ve většině případů to může být předáno pContext do nadřazeného okna rámce.

dwStyle
Určuje styl okna.

nID
ID podřízeného okna okna. ID může být AFX_IDW_PANE_FIRST , pokud není okno rozdělovače vnořené do jiného okna rozdělovače.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Do nadřazeného objektu nebo CMDIChildWnd objektu CSplitterWnd CFrameWnd můžete vložit pomocí následujícího postupu:

  1. Vložte členovou proměnnou CSplitterWnd do nadřazeného rámce.

  2. Přepište členskou funkci nadřazeného CFrameWnd::OnCreateClient rámce.

  3. Create Volání členské funkce z přepsání OnCreateClient.

Když vytvoříte okno rozdělovače z nadřazeného rámce, předejte parametr nadřazeného rámce pContext do okna rozdělovače. V opačném případě může být NULLtento parametr .

Parametr nastaví sizeMin počáteční minimální výšku řádku a šířku sloupce dynamického rozdělovače. Tato minimum, která určují, jestli je podokno příliš malé, aby se zobrazilo v celém rozsahu, je možné změnit pomocí SetRowInfo funkcí a SetColumnInfo členů.

Další informace o dynamických rozdělených oknech naleznete v článku Více typů dokumentů, zobrazení a rámečkových oken, Technical Note 29 a CSplitterWnd přehled třídy.

Příklad

// 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

Volá se rozhraním pro vytvoření ovládacího prvku sdíleného posuvníku.

virtual BOOL CreateScrollBarCtrl(
    DWORD dwStyle,
    UINT nID);

Parametry

dwStyle
Určuje styl okna.

nID
ID podřízeného okna okna. ID může být AFX_IDW_PANE_FIRST , pokud není okno rozdělovače vnořené do jiného okna rozdělovače.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Přepsání CreateScrollBarCtrl pro zahrnutí dalších ovládacích prvků vedle posuvníku Výchozím chováním je vytvoření normálních ovládacích prvků posuvníku windows.

CSplitterWnd::CreateStatic

Pokud chcete vytvořit statické rozdělovací okno, zavolejte členovou CreateStatic funkci.

virtual BOOL CreateStatic(
    CWnd* pParentWnd,
    int nRows,
    int nCols,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE,
    UINT nID = AFX_IDW_PANE_FIRST);

Parametry

pParentWnd
Okno nadřazeného rámce okna rozdělovače.

nRows
Počet řádků Tato hodnota nesmí překročit 16.

nCols
Počet sloupců Tato hodnota nesmí překročit 16.

dwStyle
Určuje styl okna.

nID
ID podřízeného okna okna. ID může být AFX_IDW_PANE_FIRST , pokud není okno rozdělovače vnořené do jiného okna rozdělovače.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

A CSplitterWnd je obvykle vložen do nadřazeného CFrameWnd objektu nebo CMDIChildWnd objektu pomocí následujícího postupu:

  1. Vložte členovou proměnnou CSplitterWnd do nadřazeného rámce.

  2. Přepište členskou funkci nadřazeného OnCreateClient rámce.

  3. CreateStatic Volání členské funkce z přepsání CFrameWnd::OnCreateClient.

Statické rozdělovací okno obsahuje pevný počet podoken, často z různých tříd.

Když vytvoříte statické rozdělovací okno, musíte současně vytvořit všechna jeho podokna. Členová CreateView funkce se obvykle používá k tomuto účelu, ale můžete také vytvořit další třídy bez zobrazení.

Počáteční minimální výška řádku a šířka sloupce pro statické rozdělovač okno je 0. Tato minimum, která určují, kdy je podokno příliš malé, aby se zobrazilo v celém rozsahu, je možné změnit pomocí SetRowInfo funkcí a SetColumnInfo členů.

Chcete-li přidat posuvníky do statického rozdělovače okna, přidejte do WS_HSCROLL WS_VSCROLL dwStylesouboru .

Další informace o statických oknech rozdělovačů najdete v článku Více typů dokumentů, zobrazení a rámečkových oken, Technické poznámky 29 a CSplitterWnd přehled třídy.

CSplitterWnd::CreateView

Vytvoří podokna pro statické rozdělovací okno.

virtual BOOL CreateView(
    int row,
    int col,
    CRuntimeClass* pViewClass,
    SIZE sizeInit,
    CCreateContext* pContext);

Parametry

row
Určuje řádek okna rozdělovače, do kterého se má nové zobrazení umístit.

col
Určuje sloupec okna rozdělovače, do kterého se má nové zobrazení umístit.

pViewClass
Určuje CRuntimeClass nové zobrazení.

sizeInit
Určuje počáteční velikost nového zobrazení.

pContext
Ukazatel na kontext vytvoření, který se používá k vytvoření zobrazení (obvykle pContext předáno do přepsané CFrameWnd::OnCreateClient členské funkce nadřazeného rámce, ve kterém se vytváří rozdělovací okno).

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Před zobrazením rozdělovače musí být vytvořena všechna podokna okna statického rozdělovače.

Architektura také volá tuto členovou funkci k vytvoření nových podoken, když uživatel dynamického rozděleného okna rozdělí podokno, řádek nebo sloupec.

Příklad

// 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

Volání k vytvoření objektu CSplitterWnd

CSplitterWnd();

Poznámky

Vytvořte CSplitterWnd objekt ve dvou krocích. Nejprve zavolejte konstruktor, který vytvoří CSplitterWnd objekt, a potom zavolá Create člen funkce, která vytvoří rozdělovač okno a připojí ho k objektu CSplitterWnd .

CSplitterWnd::DeleteColumn

Odstraní sloupec z okna rozdělovače.

virtual void DeleteColumn(int colDelete);

Parametry

colDelete
Určuje sloupec, který se má odstranit.

Poznámky

Tato členová funkce je volána architekturou pro implementaci logiky dynamického rozdělovače okna (to znamená, že pokud má rozdělovač okno SPLS_DYNAMIC_SPLIT styl). Lze ji přizpůsobit spolu s virtuální funkcí CreateView, aby implementovala pokročilejší dynamické rozdělovače.

CSplitterWnd::DeleteRow

Odstraní řádek z okna rozdělovače.

virtual void DeleteRow(int rowDelete);

Parametry

rowDelete
Určuje řádek, který se má odstranit.

Poznámky

Tato členová funkce je volána architekturou pro implementaci logiky dynamického rozdělovače okna (to znamená, že pokud má rozdělovač okno SPLS_DYNAMIC_SPLIT styl). Lze ji přizpůsobit spolu s virtuální funkcí CreateView, aby implementovala pokročilejší dynamické rozdělovače.

CSplitterWnd::DeleteView

Odstraní zobrazení z okna rozdělovače.

virtual void DeleteView(
    int row,
    int col);

Parametry

row
Určuje řádek okna rozdělovače, ve kterém se má zobrazení odstranit.

col
Určuje sloupec okna rozdělovače, ve kterém se má zobrazení odstranit.

Poznámky

Pokud se aktivní zobrazení odstraní, další zobrazení se aktivuje. Výchozí implementace předpokládá, že zobrazení se automaticky odstraní v PostNcDestroy.

Tato členová funkce je volána architekturou pro implementaci logiky dynamického rozdělovače okna (to znamená, že pokud má rozdělovač okno SPLS_DYNAMIC_SPLIT styl). Lze ji přizpůsobit spolu s virtuální funkcí CreateView, aby implementovala pokročilejší dynamické rozdělovače.

CSplitterWnd::DoKeyboardSplit

Provede příkaz rozdělení klávesnice, obvykle "Rozdělení okna".

virtual BOOL DoKeyboardSplit();

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce je příkaz vysoké úrovně, který třída používá CView k delegování na implementaci CSplitterWnd .

CSplitterWnd::DoScroll

Provádí synchronizované posouvání rozdělených oken.

virtual BOOL DoScroll(
    CView* pViewFrom,
    UINT nScrollCode,
    BOOL bDoScroll = TRUE);

Parametry

pViewFrom
Ukazatel na zobrazení, ze kterého pochází zpráva o posouvání.

nScrollCode
Posuvníkový kód, který označuje požadavek uživatele na posouvání. Tento parametr se skládá ze dvou částí: bajt s nízkým pořadím, který určuje typ posouvání vodorovně a bajt s vysokým pořadím, který určuje typ posouvání svisle:

  • SB_BOTTOM Posune se dolů.

  • SB_LINEDOWN Posune o jeden řádek dolů.

  • SB_LINEUP Posune o jeden řádek nahoru.

  • SB_PAGEDOWN Posune o jednu stránku dolů.

  • SB_PAGEUP Posune o jednu stránku nahoru.

  • SB_TOP Posune se nahoru.

bDoScroll
Určuje, zda dojde k zadané akci posouvání. Pokud bDoScroll je (to znamená TRUE , že pokud existuje podřízené okno a rozdělená okna mají oblast posouvání), může proběhnout zadaná akce posouvání. Pokud bDoScroll je (to znamená FALSE , že neexistuje žádné podřízené okno nebo rozdělená zobrazení nemají žádnou oblast posouvání), posouvání se neprojeví.

Návratová hodnota

Nenulové, pokud dojde k synchronizaci posouvání; jinak 0.

Poznámky

Tato členová funkce je volána architekturou k provedení synchronizovaného posouvání rozdělených oken, když zobrazení obdrží zprávu o posouvání. Chcete-li před povolením synchronizovaného posouvání vyžadovat akci uživatelem.

CSplitterWnd::DoScrollBy

Posune rozdělená okna podle zadaného počtu pixelů.

virtual BOOL DoScrollBy(
    CView* pViewFrom,
    CSize sizeScroll,
    BOOL bDoScroll = TRUE);

Parametry

pViewFrom
Ukazatel na zobrazení, ze kterého pochází zpráva o posouvání.

sizeScroll
Počet pixelů, které se mají posunout vodorovně a svisle

bDoScroll
Určuje, zda dojde k zadané akci posouvání. Pokud bDoScroll je (to znamená TRUE , že pokud existuje podřízené okno a rozdělená okna mají oblast posouvání), může proběhnout zadaná akce posouvání. Pokud bDoScroll je (to znamená FALSE , že neexistuje žádné podřízené okno nebo rozdělená zobrazení nemají žádnou oblast posouvání), posouvání se neprojeví.

Návratová hodnota

Nenulové, pokud dojde k synchronizaci posouvání; jinak 0.

Poznámky

Tato členová funkce je volána rozhraním v reakci na zprávu posouvání, aby se synchronizované posouvání rozdělených oken o množství v pixelech označených sizeScroll. Kladné hodnoty označují posouvání dolů a doprava; záporné hodnoty označují posouvání nahoru a doleva.

Chcete-li před povolením posouvání vyžadovat akci uživatelem, přepište ji.

CSplitterWnd::GetActivePane

Určuje aktivní podokno z fokusu nebo aktivního zobrazení v rámci.

virtual CWnd* GetActivePane(
    int* pRow = NULL,
    int* pCol = NULL);

Parametry

pRow
Ukazatel na int číslo řádku aktivního podokna.

pCol
Ukazatel na int číslo sloupce aktivního podokna.

Návratová hodnota

Ukazatel na aktivní podokno. NULL Pokud neexistuje žádné aktivní podokno.

Poznámky

Tato členová funkce je volána architekturou k určení aktivního podokna v rozděleném okně. Před získáním aktivního podokna přepište, aby uživatel vyžadoval akci.

CSplitterWnd::GetColumnCount

Vrátí počet sloupců aktuálního podokna.

int GetColumnCount() const;

Návratová hodnota

Vrátí aktuální počet sloupců v rozdělovači. U statického rozdělovače to bude také maximální počet sloupců.

CSplitterWnd::GetColumnInfo

Vrátí informace o zadaném sloupci.

void GetColumnInfo(
    int col,
    int& cxCur,
    int& cxMin) const;

Parametry

col
Určuje sloupec.

cxCur
Odkaz na nastavenou int aktuální šířku sloupce.

cxMin
Odkaz na nastavenou int aktuální minimální šířku sloupce.

CSplitterWnd::GetPane

Vrátí podokno na zadaném řádku a sloupci.

CWnd* GetPane(
    int row,
    int col) const;

Parametry

row
Určuje řádek.

col
Určuje sloupec.

Návratová hodnota

Vrátí podokno na zadaném řádku a sloupci. Vrácené podokno je obvykle odvozená CViewtřída.

CSplitterWnd::GetRowCount

Vrátí počet řádků aktuálního podokna.

int GetRowCount() const;

Návratová hodnota

Vrátí aktuální počet řádků v rozdělovacím okně. V případě okna statického rozdělovače to bude také maximální počet řádků.

CSplitterWnd::GetRowInfo

Vrátí informace o zadaném řádku.

void GetRowInfo(
    int row,
    int& cyCur,
    int& cyMin) const;

Parametry

row
Určuje řádek.

cyCur
Odkaz, který int se má nastavit na aktuální výšku řádku v pixelech

cyMin
Odkaz na int nastavení aktuální minimální výšky řádku v pixelech

Poznámky

Voláním této členské funkce získáte informace o zadaném řádku. Parametr cyCur se vyplní aktuální výškou zadaného řádku a cyMin vyplní se minimální výškou řádku.

CSplitterWnd::GetScrollStyle

Vrátí styl sdíleného posuvníku pro rozdělovač.

DWORD GetScrollStyle() const;

Návratová hodnota

Jeden nebo více z následujících příznaků stylu oken, pokud je úspěšný:

  • WS_HSCROLL Pokud rozdělovač aktuálně spravuje sdílené vodorovné posuvníky.

  • WS_VSCROLL Pokud rozdělovač aktuálně spravuje sdílené svislé posuvníky.

Pokud je hodnota nula, okno rozdělovače momentálně nespravuje žádné sdílené posuvníky.

CSplitterWnd::IdFromRowCol

Získá ID podřízeného okna pro podokno v zadaném řádku a sloupci.

int IdFromRowCol(
    int row,
    int col) const;

Parametry

row
Určuje řádek okna rozdělovače.

col
Určuje sloupec okna rozdělovače.

Návratová hodnota

ID podřízeného okna pro podokno.

Poznámky

Tato členová funkce slouží k vytváření neviews as panes a může být volána před tím, než podokno existuje.

Příklad

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

Určuje, zda pWnd je aktuálně podřízené podokno tohoto rozdělovače.

BOOL IsChildPane(
    CWnd* pWnd,
    int* pRow,
    int* pCol);

Parametry

pWnd
Ukazatel na CWnd objekt, který se má testovat.

pRow
Ukazatel na int číslo řádku, do kterého chcete uložit číslo řádku.

pCol
Ukazatel na int sloupec, do kterého chcete uložit číslo sloupce.

Návratová hodnota

Pokud nenízero, pWnd je v současné době podřízené podokno tohoto rozdělovače a pRow pCol je vyplněno umístěním podokna v okně rozdělovače. Pokud pWnd v tomto rozděleném okně není podřízené podokno, vrátí se hodnota 0.

Poznámky

Ve verzích Visual C++ starších než 6.0 byla tato funkce definována jako

BOOL IsChildPane(CWnd* pWnd, int& row, int& col);

Tato verze je teď zastaralá a neměla by se používat.

CSplitterWnd::IsTracking

Voláním této členské funkce určíte, jestli se rozdělovač v okně právě přesouvá.

BOOL IsTracking();

Návratová hodnota

Nenulové, pokud probíhá operace rozdělení; jinak 0.

CSplitterWnd::OnDrawSplitter

Vykreslí obrázek rozděleného okna.

virtual void OnDrawSplitter(
    CDC* pDC,
    ESplitType nType,
    const CRect& rect);

Parametry

pDC
Ukazatel na kontext zařízení, ve kterém se má kreslit. Pokud pDC je NULL, pak CWnd::RedrawWindow je volána rozhraním a není nakresleno žádné rozdělené okno.

nType
Hodnota enum ESplitType, která může být jedna z následujících:

  • splitBox Rozdělovač přetáhněte pole.

  • splitBar Panel, který se zobrazí mezi těmito dvěma rozdělenými okny.

  • splitIntersection Průsečík rozdělených oken. Tento prvek se nebude volat při spuštění ve Windows 95/98.

  • splitBorder Ohraničení rozděleného okna

rect
Odkaz na CRect objekt určující velikost a tvar rozdělených oken.

Poznámky

Tato členová funkce je volána rozhraním pro kreslení a určení přesných charakteristik rozdělovače okna. Přepsání OnDrawSplitter pro pokročilé přizpůsobení obrázku pro různé grafické součásti rozdělovače okna. Výchozí obrázek je podobný rozdělovači v aplikaci Microsoft Works pro Windows nebo Microsoft Windows 95/98 v tom, že průsečíky rozdělovačů jsou kombinovány dohromady.

Další informace o dynamických rozdělených oknech naleznete v článku Více typů dokumentů, zobrazení a rámečkových oken, Technical Note 29 a CSplitterWnd přehled třídy.

CSplitterWnd::OnInvertTracker

Vykreslí obrázek rozděleného okna na stejnou velikost a tvar jako okno s rámečkem.

virtual void OnInvertTracker(const CRect& rect);

Parametry

rect
Odkaz na CRect objekt určující obdélník sledování

Poznámky

Tato členová funkce je volána architekturou během změny velikosti rozdělovačů. Přepsat upřesňující OnInvertTracker přizpůsobení obrázku rozděleného okna. Výchozí obrázek je podobný rozdělovači v aplikaci Microsoft Works pro Windows nebo Microsoft Windows 95/98 v tom, že průsečíky rozdělovačů jsou kombinovány dohromady.

Další informace o dynamických rozdělených oknech naleznete v článku Více typů dokumentů, zobrazení a rámečkových oken, Technical Note 29 a CSplitterWnd přehled třídy.

CSplitterWnd::RecalcLayout

Volání k opětovnému zobrazení rozdělovače po úpravě velikosti řádku nebo sloupce

virtual void RecalcLayout();

Poznámky

Voláním této členské funkce správně znovu zobrazíte okno rozdělovače po úpravě velikosti řádků a sloupců pomocí SetRowInfo funkcí a SetColumnInfo členských funkcí. Pokud změníte velikost řádků a sloupců v rámci procesu vytváření před zobrazením rozdělovače, není nutné tuto členovou funkci volat.

Architektura volá tuto členovou funkci pokaždé, když uživatel změní velikost okna rozdělovače nebo přesune rozdělení.

Příklad

Podívejte se na příklad pro CSplitterWnd::SetColumnInfo.

CSplitterWnd::SetActivePane

Nastaví podokno tak, aby bylo aktivní v rámci.

virtual void SetActivePane(
    int row,
    int col,
    CWnd* pWnd = NULL);

Parametry

row
Pokud pWnd je NULL, určuje řádek v podokně, které bude aktivní.

col
Pokud pWnd je NULL, určuje sloupec v podokně, které bude aktivní.

pWnd
Ukazatel na CWnd objekt. Pokud NULLje podokno určené row a col je nastaveno jako aktivní. Pokud ne NULL, určuje podokno, které je nastaveno jako aktivní.

Poznámky

Tato členová funkce je volána architekturou, která nastaví podokno jako aktivní, když uživatel změní fokus na podokno v okně rámce. Můžete explicitně volat SetActivePane , abyste změnili fokus na zadané zobrazení.

Zadejte podokno zadáním řádku a sloupce nebo zadáním .pWnd

CSplitterWnd::SetColumnInfo

Volání pro nastavení zadaných informací o sloupci

void SetColumnInfo(
    int col,
    int cxIdeal,
    int cxMin);

Parametry

col
Určuje sloupec okna rozdělovače.

cxIdeal
Určuje ideální šířku pro sloupec rozdělovače oken v pixelech.

cxMin
Určuje minimální šířku sloupce rozdělovače oken v pixelech.

Poznámky

Voláním této členské funkce nastavíte novou minimální šířku a ideální šířku sloupce. Minimální hodnota sloupce určuje, kdy bude sloupec příliš malý, aby se plně zobrazil.

Když architektura zobrazí rozdělovač okno, rozloží podokna ve sloupcích a řádcích podle jejich ideálních rozměrů a pracuje z levého horního do pravého dolního rohu oblasti klienta rozdělovače.

Příklad

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

Volání pro nastavení zadaných informací o řádku

void SetRowInfo(
    int row,
    int cyIdeal,
    int cyMin);

Parametry

row
Určuje řádek rozdělovače okna.

cyIdeal
Určuje ideální výšku pro řádek rozdělovače okna v pixelech.

cyMin
Určuje minimální výšku pro řádek rozdělovače okna v pixelech.

Poznámky

Voláním této členské funkce nastavíte novou minimální výšku a ideální výšku pro řádek. Minimální hodnota řádku určuje, kdy bude řádek příliš malý, aby se plně zobrazil.

Když architektura zobrazí rozdělovač okno, rozloží podokna ve sloupcích a řádcích podle jejich ideálních rozměrů a pracuje z levého horního do pravého dolního rohu oblasti klienta rozdělovače.

CSplitterWnd::SetScrollStyle

Určuje nový styl posouvání pro podporu sdíleného posuvníku v okně rozdělovače.

void SetScrollStyle(DWORD dwStyle);

Parametry

dwStyle
Nový styl posouvání pro podporu sdíleného posuvníku okna rozdělovače, což může být jedna z následujících hodnot:

  • WS_HSCROLL Umožňuje vytvořit nebo zobrazit vodorovné sdílené posuvníky.

  • WS_VSCROLL Umožňuje vytvořit nebo zobrazit svislé sdílené posuvníky.

Poznámky

Po vytvoření posuvníku se nezničí ani v případě, že SetScrollStyle je volána bez tohoto stylu. Místo toho jsou tyto posuvníky skryté. Posuvníky tak zachovají svůj stav, i když jsou skryté. Po volání SetScrollStyleje nutné volat RecalcLayout , aby se všechny změny projevily.

CSplitterWnd::SplitColumn

Určuje, kde se okno s rámečkem rozdělí svisle.

virtual BOOL SplitColumn(int cxBefore);

Parametry

cxBefore
Pozice v pixelech, před kterou dochází k rozdělení.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce se volá při vytvoření svislého rozdělovače. SplitColumn označuje výchozí umístění, kde dochází k rozdělení.

SplitColumn je volána architekturou pro implementaci logiky dynamického rozdělovače okna (to znamená, že pokud má rozdělovač okno SPLS_DYNAMIC_SPLIT styl). Lze ji přizpůsobit spolu s virtuální funkcí CreateView, aby implementovala pokročilejší dynamické rozdělovače.

CSplitterWnd::SplitRow

Určuje, kde se okno rámečku vodorovně rozdělí.

virtual BOOL SplitRow(int cyBefore);

Parametry

cyBefore
Pozice v pixelech, před kterou dochází k rozdělení.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato členová funkce se volá při vytvoření vodorovného rozdělovače. SplitRow označuje výchozí umístění, kde dochází k rozdělení.

SplitRow je volána architekturou pro implementaci logiky dynamického rozdělovače okna (to znamená, že pokud má rozdělovač okno SPLS_DYNAMIC_SPLIT styl). Lze ji přizpůsobit spolu s virtuální funkcí CreateView, aby implementovala pokročilejší dynamické rozdělovače.

CSplitterWnd::OnDraw

Volá se rozhraním pro vykreslení rozdělovače.

virtual void OnDraw(CDC* pDC);

Parametry

pDC
Ukazatel na kontext zařízení.

Poznámky

Viz také

Mfc – ukázka VIEWEX
CWnd Třída
Graf hierarchie
CView Třída