Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Az elválasztó ablak funkcióit biztosítja, amely egy több ablaktáblát tartalmazó ablak.
Szemantika
class CSplitterWnd : public CWnd
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
CSplitterWnd::CSplitterWnd |
Hívás objektum létrehozásához CSplitterWnd . |
Nyilvános metódusok
| Név | Description |
|---|---|
CSplitterWnd::ActivateNext |
Végrehajtja a Következő vagy az Előző ablaktábla parancsot. |
CSplitterWnd::CanActivateNext |
Ellenőrzi, hogy a Következő ablaktábla vagy az Előző ablaktábla parancs jelenleg lehetséges-e. |
CSplitterWnd::Create |
Dinamikus osztóablak létrehozásához és az objektumhoz való csatolásához hívja meg.CSplitterWnd |
CSplitterWnd::CreateScrollBarCtrl |
Létrehoz egy megosztott görgetősáv-vezérlőt. |
CSplitterWnd::CreateStatic |
Statikus osztóablak létrehozásához és az objektumhoz való csatolásához hívja meg.CSplitterWnd |
CSplitterWnd::CreateView |
Felhívás ablaktábla létrehozására felosztóablakban. |
CSplitterWnd::DeleteColumn |
Oszlop törlése az osztóablakból. |
CSplitterWnd::DeleteRow |
Töröl egy sort az osztóablakból. |
CSplitterWnd::DeleteView |
Törli a nézetet az elválasztó ablakból. |
CSplitterWnd::DoKeyboardSplit |
Végrehajtja a billentyűzet felosztási parancsát, amely általában "Ablak felosztása". |
CSplitterWnd::DoScroll |
Szinkronizált görgetést végez az osztott ablakokon. |
CSplitterWnd::DoScrollBy |
A görgetések adott számú képponttal felosztják az ablakokat. |
CSplitterWnd::GetActivePane |
Meghatározza az aktív panelt a fókuszból vagy a keret aktív nézetéből. |
CSplitterWnd::GetColumnCount |
Az aktuális panel oszlopszámát adja vissza. |
CSplitterWnd::GetColumnInfo |
A megadott oszlop adatait adja vissza. |
CSplitterWnd::GetPane |
A megadott sorban és oszlopban lévő panelt adja vissza. |
CSplitterWnd::GetRowCount |
Az aktuális panelsorszámot adja vissza. |
CSplitterWnd::GetRowInfo |
A megadott sor adatait adja vissza. |
CSplitterWnd::GetScrollStyle |
A megosztott görgetősáv stílusát adja vissza. |
CSplitterWnd::IdFromRowCol |
A megadott sorban és oszlopban lévő ablaktábla gyermekablak-azonosítóját adja vissza. |
CSplitterWnd::IsChildPane |
Hívás annak megállapításához, hogy az ablak jelenleg az osztóablak gyermekablaka-e. |
CSplitterWnd::IsTracking |
Meghatározza, hogy az elválasztósáv jelenleg áthelyezés alatt áll-e. |
CSplitterWnd::RecalcLayout |
A sor- vagy oszlopméret módosítása után hívja meg újra az elválasztóablakot. |
CSplitterWnd::SetActivePane |
A panelt úgy állítja be, hogy az aktív legyen a keretben. |
CSplitterWnd::SetColumnInfo |
Hívás a megadott oszlopadatok beállításához. |
CSplitterWnd::SetRowInfo |
Hívás a megadott soradatok beállításához. |
CSplitterWnd::SetScrollStyle |
Megadja az osztóablak megosztott görgetősáv-támogatásának új görgetősáv-stílusát. |
CSplitterWnd::SplitColumn |
Azt jelzi, hogy a keretablak függőlegesen hol osztja fel a elemet. |
CSplitterWnd::SplitRow |
Azt jelzi, hogy a keretablak vízszintesen hol oszlik el. |
Védett metódusok
| Név | Description |
|---|---|
CSplitterWnd::OnDraw |
A keretrendszer meghívta, hogy megrajzolja az elválasztó ablakot. |
CSplitterWnd::OnDrawSplitter |
Egy felosztott ablak képének megjelenítése. |
CSplitterWnd::OnInvertTracker |
Az osztott ablak képét a keretablak méretével és alakjával megegyező méretre és alakzatra jeleníti meg. |
Megjegyzések
A panelek általában alkalmazásspecifikus objektumok, amelyekből CViewszármazik, de bármely CWnd olyan objektum lehet, amely rendelkezik a megfelelő gyermekablak-azonosítóval.
Egy CSplitterWnd objektum általában egy szülőbe CFrameWnd vagy CMDIChildWnd objektumba van beágyazva. Hozzon létre egy CSplitterWnd objektumot az alábbi lépésekkel:
Tagváltozó beágyazása
CSplitterWnda szülőkeretbe.Felülbírálja a szülőkeret tagfüggvényét
CFrameWnd::OnCreateClient.A felülrendelt területen
belül hívja meg a következő tagfüggvényét: . >
Hívja meg a Create tagfüggvényt dinamikus elválasztó ablak létrehozásához. A dinamikus elválasztóablakok általában ugyanazon dokumentum több külön ablaktáblájának vagy nézetének létrehozására és görgetésére szolgálnak. A keretrendszer automatikusan létrehoz egy kezdeti panelt az elválasztó számára; ezután a keretrendszer további paneleket hoz létre, méretez át és semmisít meg, miközben a felhasználó az osztóablak vezérlőit működteti.
Híváskor Createmeg kell adnia egy minimális sormagasságot és oszlopszélességű értéket, amely meghatározza, hogy a panelek túl kicsik-e ahhoz, hogy teljesen megjelenjenek. A hívás Createután ezeket a minimumokat a tagok és SetRowInfo a függvények meghívásával módosíthatjaSetColumnInfo.
Az oszlop és a SetColumnInfoSetRowInfo tagfüggvények használatával "ideális" szélességet állíthat be egy oszlophoz és egy sor "ideális" magasságát. Amikor a keretrendszer egy elválasztó ablakot jelenít meg, először a szülőkeretet, majd az elválasztó ablakot jeleníti meg. A keretrendszer ezután az ideális méretüknek megfelelően oszlopokban és sorokban helyezi el az ablaktáblákat, és a bal felső saroktól az elválasztó ablak ügyfélterületének jobb alsó sarkáig dolgozik.
A dinamikus osztóablak összes ablaktáblájának ugyanabban az osztályban kell lennie. A dinamikus felosztóablakokat támogató ismerős alkalmazások közé tartozik a Microsoft Word és a Microsoft Excel.
CreateStatic A tagfüggvény használatával hozzon létre egy statikus osztóablakot. A felhasználó csak a statikus elválasztóablakban lévő panelek méretét módosíthatja, a számukat és a sorrendjüket nem.
A statikus elválasztó létrehozásakor kifejezetten létre kell hoznia az összes statikus elválasztó panelt. Győződjön meg arról, hogy az összes ablaktáblát a szülőkeret tagfüggvényének visszatérése OnCreateClient előtt hozza létre, vagy a keretrendszer nem jeleníti meg megfelelően az ablakot.
A CreateStatic tagfüggvény automatikusan inicializál egy statikus elválasztót, amelynek minimális sormagassága és oszlopszélessége 0. A hívás Createután módosítsa ezeket a minimumokat az és SetRowInfo a SetColumnInfo tagfüggvények meghívásával. A kívánt ideális panelméretek jelzésére is használhatja SetColumnInfo és SetRowInfo a hívás CreateStatic után is.
A statikus osztók egyes paneljei gyakran különböző osztályokhoz tartoznak. A statikus felosztóablakok példáiért tekintse meg a grafikus szerkesztőt és a Windows Fájlkezelőt.
Az elválasztóablakok speciális görgetősávokat támogatnak (a panelek görgetősávjaitól eltekintve). Ezek a görgetősávok az CSplitterWnd objektum gyermekei, és meg vannak osztva a panelekkel.
Ezeket a speciális görgetősávokat az elválasztó ablak létrehozásakor hozza létre. Ha például CSplitterWnd egy sorból, két oszlopból áll, és a WS_VSCROLL stílus egy függőleges görgetősávot jelenít meg, amelyet a két panel közösen használ. Amikor a felhasználó áthelyezi a görgetősávot, WM_VSCROLL a rendszer mindkét ablaktáblára elküldi az üzeneteket. Amikor az ablaktáblák beállítják a görgetősáv pozícióját, a megosztott görgetősáv be van állítva.
A felosztóablakokról további információt a Technical Note 29-ben talál.
A dinamikus osztóablakok létrehozásával kapcsolatos további információkért lásd:
Öröklési hierarchia
CSplitterWnd
Requirements
Fejléc:afxext.h
CSplitterWnd::ActivateNext
A keretrendszer meghívta a Következő vagy az Előző ablaktábla parancs végrehajtásához.
virtual void ActivateNext(BOOL bPrev = FALSE);
Paraméterek
bPrev
Azt jelzi, hogy melyik ablakot kell aktiválni.
TRUE az előzőhöz; FALSE a következőhöz.
Megjegyzések
Ez a tagfüggvény egy magas szintű parancs, amelyet az CView osztály a megvalósításhoz CSplitterWnd delegál.
CSplitterWnd::CanActivateNext
A keretrendszer meghívta, hogy ellenőrizze, hogy a Következő ablaktábla vagy az Előző ablaktábla parancs jelenleg lehetséges-e.
virtual BOOL CanActivateNext(BOOL bPrev = FALSE);
Paraméterek
bPrev
Azt jelzi, hogy melyik ablakot kell aktiválni.
TRUE az előzőhöz; FALSE a következőhöz.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény egy magas szintű parancs, amelyet az CView osztály a megvalósításhoz CSplitterWnd delegál.
CSplitterWnd::Create
Dinamikus elválasztó ablak létrehozásához hívja meg a tagfüggvényt Create .
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éterek
pParentWnd
Az elválasztó ablak szülőkeretablaka.
nMaxRows
Az osztóablakban lévő sorok maximális száma. Ez az érték nem haladhatja meg a 2 értéket.
nMaxCols
Az osztóablakban lévő oszlopok maximális száma. Ez az érték nem haladhatja meg a 2 értéket.
sizeMin
Azt a minimális méretet adja meg, amelyen egy panel megjeleníthető.
pContext
Egy struktúra mutatója CCreateContext . A legtöbb esetben ez lehet a pContext szülőkeret ablakának átadva.
dwStyle
Megadja az ablakstílust.
nID
Az ablak gyermekablak-azonosítója. Az azonosító csak akkor lehet AFX_IDW_PANE_FIRST , ha az elválasztó ablak egy másik elválasztó ablakban van beágyazva.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Szülőbe vagy CMDIChildWnd objektumba CFrameWnd az alábbi lépések végrehajtásával ágyazhat beCSplitterWnd:
Tagváltozó beágyazása
CSplitterWnda szülőkeretbe.Felülbírálja a szülőkeret tagfüggvényét
CFrameWnd::OnCreateClient.Hívja meg a
Createtagfüggvényt a felülírt függvényen belülrőlOnCreateClient.
Ha egy szülőkereten belülről hoz létre elválasztó ablakot, adja át a szülőkeret paraméterét pContext az elválasztó ablaknak. Ellenkező esetben ez a paraméter lehet NULL.
A dinamikus elválasztóablak kezdeti minimális sormagasságát és oszlopszélességét a sizeMin paraméter állítja be. Ezek a minimumok, amelyek meghatározzák, hogy egy panel túl kicsi-e ahhoz, hogy teljes egészében megjelenjenek, módosíthatók a SetRowInfo tagfüggvényekkel.SetColumnInfo
A dinamikus felosztóablakokról további információt a Több dokumentumtípus, nézet és keretablak,a Technical Note 29 és az CSplitterWnd osztály áttekintése című cikkben talál.
Example
// 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
A keretrendszer meghívta, hogy hozzon létre egy megosztott görgetősáv-vezérlőt.
virtual BOOL CreateScrollBarCtrl(
DWORD dwStyle,
UINT nID);
Paraméterek
dwStyle
Megadja az ablakstílust.
nID
Az ablak gyermekablak-azonosítója. Az azonosító csak akkor lehet AFX_IDW_PANE_FIRST , ha az elválasztó ablak egy másik elválasztó ablakban van beágyazva.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Felülbírálás CreateScrollBarCtrl a görgetősáv melletti további vezérlők hozzáadásához. Az alapértelmezett viselkedés normál Windows-görgetősáv-vezérlők létrehozása.
CSplitterWnd::CreateStatic
Statikus osztóablak létrehozásához hívja meg a tagfüggvényt CreateStatic .
virtual BOOL CreateStatic(
CWnd* pParentWnd,
int nRows,
int nCols,
DWORD dwStyle = WS_CHILD | WS_VISIBLE,
UINT nID = AFX_IDW_PANE_FIRST);
Paraméterek
pParentWnd
Az elválasztó ablak szülőkeretablaka.
nRows
A sorok száma. Ez az érték nem haladhatja meg a 16-ot.
nCols
Az oszlopok száma. Ez az érték nem haladhatja meg a 16-ot.
dwStyle
Megadja az ablakstílust.
nID
Az ablak gyermekablak-azonosítója. Az azonosító csak akkor lehet AFX_IDW_PANE_FIRST , ha az elválasztó ablak egy másik elválasztó ablakban van beágyazva.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Az A CSplitterWnd általában egy szülőbe CFrameWnd vagy CMDIChildWnd objektumba van beágyazva az alábbi lépésekkel:
Tagváltozó beágyazása
CSplitterWnda szülőkeretbe.Felülbírálja a szülőkeret tagfüggvényét
OnCreateClient.Hívja meg a
CreateStatictagfüggvényt a felülírt függvényen belülrőlCFrameWnd::OnCreateClient.
A statikus elválasztóablakok rögzített számú ablaktáblát tartalmaznak, gyakran különböző osztályokból.
Statikus elválasztó ablak létrehozásakor ugyanakkor létre kell hoznia az összes ablaktáblát. A CreateView tagfüggvényt általában erre a célra használják, de más nemnézeti osztályokat is létrehozhat.
A statikus elválasztóablakok kezdeti minimális sormagassága és oszlopszélessége 0. Ezek a minimumok, amelyek meghatározzák, hogy egy panel túl kicsi-e ahhoz, hogy teljes egészében megjelenjenek, a tagfüggvényekkel SetRowInfoSetColumnInfo módosíthatók.
Ha görgetősávokat szeretne hozzáadni egy statikus elválasztó ablakhoz, adja hozzá a stílusokat és WS_VSCROLL a WS_HSCROLL stílusokatdwStyle.
A több dokumentumtípust, nézetet és keretablakot,a Technical Note 29-et és a CSplitterWnd statikus osztóablakokról szóló osztály áttekintését a "Splitter Windows" című cikkben találja.
CSplitterWnd::CreateView
Létrehozza a statikus elválasztó ablak paneleit.
virtual BOOL CreateView(
int row,
int col,
CRuntimeClass* pViewClass,
SIZE sizeInit,
CCreateContext* pContext);
Paraméterek
row
Megadja az elválasztó ablaksort, amelyben az új nézetet el szeretné helyezni.
col
Azt az elválasztó ablakoszlopot adja meg, amelyben az új nézetet el szeretné helyezni.
pViewClass
CRuntimeClass Az új nézetet adja meg.
sizeInit
Az új nézet kezdeti méretét adja meg.
pContext
A nézet létrehozásához használt létrehozási környezetre mutató mutató (általában a pContext szülőkeret felülírt CFrameWnd::OnCreateClient tagfüggvényébe kerül, amelyben az elválasztó ablak létrejön).
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
A statikus elválasztó ablak összes ablaktábláját létre kell hozni, mielőtt a keretrendszer megjeleníti az elválasztót.
A keretrendszer ezt a tagfüggvényt is meghívja új ablaktáblák létrehozására, amikor egy dinamikus elválasztó ablak felhasználója feloszt egy panelt, sort vagy oszlopot.
Example
// 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
Hívás objektum létrehozásához CSplitterWnd .
CSplitterWnd();
Megjegyzések
Hozzon létre egy objektumot CSplitterWnd két lépésben. Először hívja meg a konstruktort, amely létrehozza az CSplitterWnd objektumot, majd hívja meg a Create tagfüggvényt, amely létrehozza az elválasztó ablakot, és csatolja az CSplitterWnd objektumhoz.
CSplitterWnd::DeleteColumn
Oszlop törlése az osztóablakból.
virtual void DeleteColumn(int colDelete);
Paraméterek
colDelete
Megadja a törölni kívánt oszlopot.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg a dinamikus elválasztó ablak logikájának implementálásához (vagyis ha az elválasztó ablak stílusa SPLS_DYNAMIC_SPLIT van). A virtuális függvénnyel CreateViewegyütt testre is szabható a fejlettebb dinamikus osztók implementálásához.
CSplitterWnd::DeleteRow
Töröl egy sort az osztóablakból.
virtual void DeleteRow(int rowDelete);
Paraméterek
rowDelete
Megadja a törölni kívánt sort.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg a dinamikus elválasztó ablak logikájának implementálásához (vagyis ha az elválasztó ablak stílusa SPLS_DYNAMIC_SPLIT van). A virtuális függvénnyel CreateViewegyütt testre is szabható a fejlettebb dinamikus osztók implementálásához.
CSplitterWnd::DeleteView
Törli a nézetet az elválasztó ablakból.
virtual void DeleteView(
int row,
int col);
Paraméterek
row
Azt az elválasztó ablaksort adja meg, amelynél törölni szeretné a nézetet.
col
Azt az elválasztó ablakoszlopot adja meg, amelynél törölni szeretné a nézetet.
Megjegyzések
Ha az aktív nézet törlése folyamatban van, a következő nézet aktívvá válik. Az alapértelmezett implementáció feltételezi, hogy a nézet automatikusan törlődik a fájlból PostNcDestroy.
Ezt a tagfüggvényt a keretrendszer hívja meg a dinamikus elválasztó ablak logikájának implementálásához (vagyis ha az elválasztó ablak stílusa SPLS_DYNAMIC_SPLIT van). A virtuális függvénnyel CreateViewegyütt testre is szabható a fejlettebb dinamikus osztók implementálásához.
CSplitterWnd::DoKeyboardSplit
Végrehajtja a billentyűzet felosztási parancsát, amely általában "Ablak felosztása".
virtual BOOL DoKeyboardSplit();
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény egy magas szintű parancs, amelyet az CView osztály a megvalósításhoz CSplitterWnd delegál.
CSplitterWnd::DoScroll
Szinkronizált görgetést végez az osztott ablakokon.
virtual BOOL DoScroll(
CView* pViewFrom,
UINT nScrollCode,
BOOL bDoScroll = TRUE);
Paraméterek
pViewFrom
Mutató arra a nézetre, ahonnan a görgető üzenet származik.
nScrollCode
A felhasználó görgetési kérését jelző görgetősáv-kód. Ez a paraméter két részből áll: egy alacsony sorrendű bájtból, amely meghatározza a vízszintesen előforduló görgetés típusát, valamint egy nagy sorrendű bájtot, amely meghatározza a függőlegesen történő görgetés típusát:
SB_BOTTOMGörgessen lefelé.SB_LINEDOWNGörgetés egy sorral lejjebb.SB_LINEUPGörgetés egy sorban felfelé.SB_PAGEDOWNGörgetés egy oldallal lejjebb.SB_PAGEUPEgy oldal felfelé görgetése.SB_TOPGörgessen felfelé.
bDoScroll
Meghatározza, hogy a megadott görgetési művelet bekövetkezik-e. Ha bDoScroll igen TRUE (vagyis ha létezik gyermekablak, és az osztott ablakok görgetési tartománya van), akkor a megadott görgetési művelet végrehajtható; ha bDoScroll igen FALSE (vagyis ha nincs gyermekablak, vagy ha az osztott nézetekben nincs görgetési tartomány), akkor a görgetés nem történik meg.
Visszaadott érték
Nonzero, ha szinkronizált görgetés történik; egyéb esetben 0.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer meghívja az osztott ablakok szinkronizált görgetéséhez, amikor a nézet görgetési üzenetet kap. Felülbírálás, ha a felhasználónak műveletet kell elvégeznie, mielőtt a szinkronizált görgetés engedélyezve lenne.
CSplitterWnd::DoScrollBy
A görgetések adott számú képponttal felosztják az ablakokat.
virtual BOOL DoScrollBy(
CView* pViewFrom,
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Paraméterek
pViewFrom
Mutató arra a nézetre, ahonnan a görgető üzenet származik.
sizeScroll
Vízszintesen és függőlegesen görgetendő képpontok száma.
bDoScroll
Meghatározza, hogy a megadott görgetési művelet bekövetkezik-e. Ha bDoScroll igen TRUE (vagyis ha létezik gyermekablak, és az osztott ablakok görgetési tartománya van), akkor a megadott görgetési művelet végrehajtható; ha bDoScroll igen FALSE (vagyis ha nincs gyermekablak, vagy ha az osztott nézetekben nincs görgetési tartomány), akkor a görgetés nem történik meg.
Visszaadott érték
Nonzero, ha szinkronizált görgetés történik; egyéb esetben 0.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer egy görgetőüzenetre válaszolva hívja meg, hogy a felosztott ablakok szinkronizált görgetését képpontban, képpontban jelezve sizeScrollvégezze el. A pozitív értékek lefelé és jobbra görgetést jeleznek; a negatív értékek felfelé és balra görgetést jeleznek.
Felülbírálás a felhasználó műveletének megköveteléséhez a görgetés engedélyezése előtt.
CSplitterWnd::GetActivePane
Meghatározza az aktív panelt a fókuszból vagy a keret aktív nézetéből.
virtual CWnd* GetActivePane(
int* pRow = NULL,
int* pCol = NULL);
Paraméterek
pRow
Egy mutató az int aktív ablaktábla sorszámának lekéréséhez.
pCol
Egy mutató az int aktív ablaktábla oszlopszámának lekéréséhez.
Visszaadott érték
Mutasson az aktív panelre.
NULL ha nincs aktív ablaktábla.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg az osztóablak aktív paneljének meghatározásához. Felülbírálás, ha a felhasználónak műveletet kell elvégeznie az aktív ablaktábla lekérése előtt.
CSplitterWnd::GetColumnCount
Az aktuális panel oszlopszámát adja vissza.
int GetColumnCount() const;
Visszaadott érték
Az osztó oszlopainak aktuális számát adja eredményül. Statikus elválasztó esetén ez az oszlopok maximális száma is.
CSplitterWnd::GetColumnInfo
A megadott oszlop adatait adja vissza.
void GetColumnInfo(
int col,
int& cxCur,
int& cxMin) const;
Paraméterek
col
Egy oszlopot ad meg.
cxCur
Hivatkozás az int oszlop aktuális szélességére beállított hivatkozásra.
cxMin
Hivatkozás az int oszlop aktuális minimális szélességére beállított hivatkozásra.
CSplitterWnd::GetPane
A megadott sorban és oszlopban lévő panelt adja vissza.
CWnd* GetPane(
int row,
int col) const;
Paraméterek
row
Egy sort ad meg.
col
Egy oszlopot ad meg.
Visszaadott érték
A megadott sorban és oszlopban lévő panelt adja vissza. A visszaadott panel általában egy CView-származtatott osztály.
CSplitterWnd::GetRowCount
Az aktuális panelsorszámot adja vissza.
int GetRowCount() const;
Visszaadott érték
Az osztóablakban lévő sorok aktuális számát adja vissza. Statikus elválasztóablak esetén ez a sorok maximális száma is.
CSplitterWnd::GetRowInfo
A megadott sor adatait adja vissza.
void GetRowInfo(
int row,
int& cyCur,
int& cyMin) const;
Paraméterek
row
Egy sort ad meg.
cyCur
Hivatkozás a int sor aktuális magasságára képpontban.
cyMin
Hivatkozás a int sor képpontban megadott minimális magasságára.
Megjegyzések
Hívja meg ezt a tagfüggvényt a megadott sor adatainak lekéréséhez. A cyCur paraméter a megadott sor aktuális magasságával van kitöltve, és cyMin a sor minimális magasságával van kitöltve.
CSplitterWnd::GetScrollStyle
Az osztóablak megosztott görgetősáv-stílusát adja vissza.
DWORD GetScrollStyle() const;
Visszaadott érték
Ha sikeres, az alábbi ablakstílus-jelzők közül egy vagy több:
WS_HSCROLLHa az elválasztó jelenleg a megosztott vízszintes görgetősávokat kezeli.WS_VSCROLLHa az elválasztó jelenleg a megosztott függőleges görgetősávokat kezeli.
Ha nulla, az elválasztó ablak jelenleg nem kezeli a megosztott görgetősávokat.
CSplitterWnd::IdFromRowCol
Beolvasja a megadott sor és oszlop paneljének gyermekablak-azonosítóját.
int IdFromRowCol(
int row,
int col) const;
Paraméterek
row
Az elválasztó ablak sorát adja meg.
col
Az elválasztó ablak oszlopát adja meg.
Visszaadott érték
Az ablaktábla gyermekablak-azonosítója.
Megjegyzések
Ez a tagfüggvény nemnézetek panelként való létrehozására szolgál, és meghívható a panel létrehozása előtt.
Example
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
Meghatározza, hogy jelenleg a felosztóablak gyermekablaka-e pWnd .
BOOL IsChildPane(
CWnd* pWnd,
int* pRow,
int* pCol);
Paraméterek
pWnd
Egy tesztelni kívánt objektumra mutató mutató CWnd .
pRow
A sorszám tárolására szolgáló mutató int .
pCol
Egy oszlopszám tárolására szolgáló mutató int .
Visszaadott érték
Ha nem, pWnd akkor jelenleg ennek a felosztóablaknak a gyermekablaka, és pColpRow a felosztóablakban lévő ablaktábla pozíciójával van kitöltve. Ha pWnd nem a felosztóablak gyermekablaka, a 0 értéket adja vissza.
Megjegyzések
A Visual C++ 6.0 előtti verzióiban ez a függvény a következőként lett definiálva:
BOOL IsChildPane(CWnd* pWnd, int& row, int& col);
Ez a verzió már elavult, ezért nem szabad használni.
CSplitterWnd::IsTracking
Hívja meg ezt a tagfüggvényt annak megállapításához, hogy az ablak elválasztó sávja jelenleg áthelyezve van-e.
BOOL IsTracking();
Visszaadott érték
Nemzero, ha egy felosztóművelet folyamatban van; egyéb esetben 0.
CSplitterWnd::OnDrawSplitter
Egy felosztott ablak képének megjelenítése.
virtual void OnDrawSplitter(
CDC* pDC,
ESplitType nType,
const CRect& rect);
Paraméterek
pDC
Mutató arra az eszközkörnyezetre, amelyben rajzolni szeretne. Ha pDC igen NULL, akkor CWnd::RedrawWindow a keretrendszer meghívja, és nem rajzol fel osztott ablakot.
nType
A ( ) enum ESplitTypeértéke, amely az alábbiak egyike lehet:
splitBoxAz elválasztó húzása.splitBarA két osztott ablak között megjelenő sáv.splitIntersectionAz osztott ablakok metszete. Ez az elem nem lesz meghívva a Windows 95/98-on való futtatáskor.splitBorderAz osztott ablakszegélyek.
rect
Hivatkozás az CRect osztott ablakok méretét és alakját meghatározó objektumra.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg az osztóablak pontos jellemzőinek rajzolásához és megadásához. Felülbírálás OnDrawSplitter a képi elemek speciális testreszabásához az elválasztó ablak különböző grafikus összetevőihez. Az alapértelmezett kép a Windows Microsoft Worksben vagy a Microsoft Windows 95/98-ban használt elválasztóhoz hasonló, mivel az elválasztósávok metszetei össze vannak keverve.
A dinamikus felosztóablakokról további információt a Több dokumentumtípus, nézet és keretablak,a Technical Note 29 és az CSplitterWnd osztály áttekintése című cikkben talál.
CSplitterWnd::OnInvertTracker
Az osztott ablak képét a keretablak méretével és alakjával megegyező méretre és alakzatra jeleníti meg.
virtual void OnInvertTracker(const CRect& rect);
Paraméterek
rect
Hivatkozás a CRect követési téglalapot meghatározó objektumra.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg az osztók átméretezése során. Felülbírálás OnInvertTracker az osztóablak képeinek speciális testreszabásához. Az alapértelmezett kép a Windows Microsoft Worksben vagy a Microsoft Windows 95/98-ban használt elválasztóhoz hasonló, mivel az elválasztósávok metszetei össze vannak keverve.
A dinamikus felosztóablakokról további információt a Több dokumentumtípus, nézet és keretablak,a Technical Note 29 és az CSplitterWnd osztály áttekintése című cikkben talál.
CSplitterWnd::RecalcLayout
A sor- vagy oszlopméret módosítása után hívja meg újra az elválasztóablakot.
virtual void RecalcLayout();
Megjegyzések
Hívja meg ezt a tagfüggvényt az elválasztó ablak helyes visszajelzéséhez, miután a sor- és oszlopméreteket a tagfüggvényekkel SetRowInfoSetColumnInfo együtt módosította. Ha a létrehozási folyamat részeként módosítja a sor- és oszlopméreteket, mielőtt az elválasztó ablak látható lenne, nem szükséges meghívni ezt a tagfüggvényt.
A keretrendszer meghívja ezt a tagfüggvényt, amikor a felhasználó átméretezi az osztóablakot, vagy áthelyez egy felosztást.
Example
Lásd a példát a CSplitterWnd::SetColumnInfo.
CSplitterWnd::SetActivePane
A panelt úgy állítja be, hogy az aktív legyen a keretben.
virtual void SetActivePane(
int row,
int col,
CWnd* pWnd = NULL);
Paraméterek
row
Ha pWnd igen NULL, a panel azon sorát adja meg, amely aktív lesz.
col
Ha pWnd igen NULL, a panel aktív oszlopát adja meg.
pWnd
Egy objektumra mutató CWnd mutató. Ha NULL, akkor a megadott row és col aktív panel van beállítva. Ha nem NULL, akkor az aktív panelt adja meg.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer meghívja, hogy aktívként állítsa be a panelt, amikor a felhasználó a fókuszt a keretablakban lévő ablaktáblára módosítja. A fókusz a megadott nézetre való módosításához hívható SetActivePane meg explicit módon.
Adja meg a panelt a sor és az oszlop megadásával, vagy a megadásával pWnd.
CSplitterWnd::SetColumnInfo
Hívás a megadott oszlopadatok beállításához.
void SetColumnInfo(
int col,
int cxIdeal,
int cxMin);
Paraméterek
col
Elválasztó ablakoszlopot ad meg.
cxIdeal
Az elválasztó ablak oszlopának ideális szélességét adja meg képpontban.
cxMin
Az elválasztó ablak oszlopának minimális szélességét adja meg képpontban.
Megjegyzések
Hívja meg ezt a tagfüggvényt egy új minimális szélesség és egy oszlop ideális szélességének beállításához. Az oszlop minimális értéke határozza meg, hogy az oszlop mikor lesz túl kicsi a teljes megjelenítéshez.
Amikor a keretrendszer megjeleníti az elválasztó ablakot, az ideális méretüknek megfelelően oszlopokban és sorokban helyezi el az ablaktáblákat, és a bal felső saroktól a jobb alsó sarokig dolgozik az elválasztó ablak ügyfélterületének.
Example
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
Hívás a megadott soradatok beállításához.
void SetRowInfo(
int row,
int cyIdeal,
int cyMin);
Paraméterek
row
Egy elválasztó ablaksort ad meg.
cyIdeal
Ideális magasságot ad meg az elválasztó ablak sorához képpontban.
cyMin
Az elválasztó ablak sorának minimális magasságát adja meg képpontban.
Megjegyzések
Hívja meg ezt a tagfüggvényt egy sor új minimális magasságának és ideális magasságának beállításához. A sor minimális értéke határozza meg, hogy a sor mikor lesz túl kicsi a teljes megjelenítéshez.
Amikor a keretrendszer megjeleníti az elválasztó ablakot, az ideális méretüknek megfelelően oszlopokban és sorokban helyezi el az ablaktáblákat, és a bal felső saroktól a jobb alsó sarokig dolgozik az elválasztó ablak ügyfélterületének.
CSplitterWnd::SetScrollStyle
Megadja az osztóablak megosztott görgetősáv-támogatásának új görgetési stílusát.
void SetScrollStyle(DWORD dwStyle);
Paraméterek
dwStyle
Az elválasztó ablak megosztott görgetősáv-támogatásának új görgetési stílusa, amely az alábbi értékek egyike lehet:
WS_HSCROLLVízszintes megosztott görgetősávok létrehozása/megjelenítése.WS_VSCROLLFüggőleges megosztott görgetősávok létrehozása/megjelenítése.
Megjegyzések
Miután létrehozta a görgetősávot, az nem lesz megsemmisítve, még akkor sem, ha SetScrollStyle a stílus nélkül hívják; ehelyett ezek a görgetősávok rejtve maradnak. Ez lehetővé teszi, hogy a görgetősávok megőrizzék az állapotukat annak ellenére, hogy rejtettek. A hívás SetScrollStyleután meg kell hívni RecalcLayout az összes módosítás érvénybe lépését.
CSplitterWnd::SplitColumn
Azt jelzi, hogy a keretablak függőlegesen hol osztja fel a elemet.
virtual BOOL SplitColumn(int cxBefore);
Paraméterek
cxBefore
Az a pozíció képpontban, amely előtt a felosztás történik.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ezt a tagfüggvényt függőleges elválasztó ablak létrehozásakor hívja meg a függvény.
SplitColumn A felosztás alapértelmezett helyét jelzi.
SplitColumn a keretrendszer meghívja a dinamikus elválasztó ablak logikájának implementálásához (vagyis ha az elválasztó ablak stílusa SPLS_DYNAMIC_SPLIT van). A virtuális függvénnyel CreateViewegyütt testre is szabható a fejlettebb dinamikus osztók implementálásához.
CSplitterWnd::SplitRow
Azt jelzi, hogy a keretablak vízszintesen hol oszlik el.
virtual BOOL SplitRow(int cyBefore);
Paraméterek
cyBefore
Az a pozíció képpontban, amely előtt a felosztás történik.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
Ez a tagfüggvény egy vízszintes elválasztó ablak létrehozásakor lesz meghívva.
SplitRow A felosztás alapértelmezett helyét jelzi.
SplitRow a keretrendszer meghívja a dinamikus elválasztó ablak logikájának implementálásához (vagyis ha az elválasztó ablak stílusa SPLS_DYNAMIC_SPLIT van). A virtuális függvénnyel CreateViewegyütt testre is szabható a fejlettebb dinamikus osztók implementálásához.
CSplitterWnd::OnDraw
A keretrendszer meghívta, hogy megrajzolja az elválasztó ablakot.
virtual void OnDraw(CDC* pDC);
Paraméterek
pDC
Egy eszközkörnyezetre mutató mutató.
Megjegyzések
Lásd még
MFC-minta VIEWEX
CWnd osztály
hierarchiadiagram
CView osztály