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:
Vložte členovou proměnnou
CSplitterWnd
do nadřazeného rámce.Přepište členskou funkci nadřazeného
CFrameWnd::OnCreateClient
rámce.V rámci přepsání
OnCreateClient
volejteCreate
funkci neboCreateStatic
členaCSplitterWnd
.
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í Create
zadá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í Create
můž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í Create
upravte 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
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:
Vložte členovou proměnnou
CSplitterWnd
do nadřazeného rámce.Přepište členskou funkci nadřazeného
CFrameWnd::OnCreateClient
rámce.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 NULL
tento 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:
Vložte členovou proměnnou
CSplitterWnd
do nadřazeného rámce.Přepište členskou funkci nadřazeného
OnCreateClient
rámce.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
dwStyle
souboru .
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á CView
tří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 NULL
je 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í SetScrollStyle
je 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í.