Krzysztof Mossakowski
Materiały dla studentów
 

Splitter
(klasa CSplitterWnd)

MFC
Spis treści

Splitter
klasa CSplitterWnd
Informacje ogólne
Najczęstszy sposób wykorzystania
Hierarchia klas

  •  Informacje ogólne

    • 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]

  •  Najczęstszy sposób wykorzystania

    • 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]

 

  •  Hierarchia klas

    CObject - informacja w trakcie wykonywania, dynamiczne tworzenie, serializacja
        CCmdTarget - obsługa komunikatów Windows
            CWnd - okno
                CSplitterWnd

[początek strony]