Splitter
klasa CSplitterWnd
|
|
-
-
Splitter to wąski
pasek dzielący okno na dwie części (panele)
-
może być przesuwany,
co będzie powodować zmianę rozmiarów obu
paneli
-
możliwe jest ponowne
dzielenie panela przy użyciu splitter
-
okno lub jego panel może
być zawsze podzielone tylko na jeden z dwóch sposobów:
poziomo lub pionowo
-
Splitter jest oknem w
systemie Windows, czyli posiada uchwt HWND
-
W MFC za obsługę splitter
odpowiada klasa CSplitterWnd
-
Obiekt klasy CSplitterWnd
jest zwykle zawarty w klasie okna
nadrzędnego, czyli w obiekcie klasy CFrameWnd
lub CMDIChildWnd
[początek strony]
-
-
Splitter jest najczęściej
wykorzystywany w aplikacjach opartych na architekturze
dokument/widok
-
wykorzystanie go daje możliwość
umieszczenia w jednym oknie więcej niż jednego widoku
dokumentu
-
dynamiczny splitter
może być używany tylko wówczas, gdy widoki
umieszczane w dwóch częściach podzielonego okna są
tej samej klasy
-
statyczny splitter daje możliwość
zastosowanie widoków różnych klas
-
Schemat tworzenia obiektu splitter:
-
zdefiniować obiekt klasy CSplitterWnd
lub potomnej w klasie okna nadrzędnego (CFrameWnd,
CMDIChildWnd lub potomnej)
-
nadpisać metodę CFrameWnd::OnCreateClient,
w której:
- wywołać CSplitterWnd::Create, żeby
utworzyć dynamiczny splitter albo CSplitterWnd::CreateStatic,
żeby utworzyć statyczny splitter
- ustawić parametry paneli: CSplitterWnd::SetColumnInfo
albo CSplitterWnd::SetRowInfo
- utworzyć widoki dla stworzonych paneli: CSplitterWnd::CreateView
-
Dodając do pionowego splitter parametr
WS_VSCROLL lub do poziomego WS_HSCROLL, można
uzyskać wspólny scroll bar dla obu paneli
podzielonego okna
[początek strony]
[początek strony]
|