Udostępnij za pośrednictwem


CSplitterWnd Klasa

Udostępnia funkcje okna podziału, które jest oknem zawierającym wiele okienek.

Składnia

class CSplitterWnd : public CWnd

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CSplitterWnd::CSplitterWnd Wywołaj metodę , aby skonstruować CSplitterWnd obiekt.

Metody publiczne

Nazwa/nazwisko opis
CSplitterWnd::ActivateNext Wykonuje polecenie Następne okienko lub Poprzednie okienko.
CSplitterWnd::CanActivateNext Sprawdza, czy jest obecnie możliwe polecenie Następne okienko lub Poprzednie okienko.
CSplitterWnd::Create Wywołaj metodę , aby utworzyć dynamiczne okno podziału i dołączyć je do CSplitterWnd obiektu.
CSplitterWnd::CreateScrollBarCtrl Tworzy udostępnioną kontrolkę paska przewijania.
CSplitterWnd::CreateStatic Wywołaj metodę , aby utworzyć okno rozdzielacza statycznego i dołączyć je do CSplitterWnd obiektu.
CSplitterWnd::CreateView Wywołaj metodę , aby utworzyć okienko w oknie podziału.
CSplitterWnd::DeleteColumn Usuwa kolumnę z okna podziału.
CSplitterWnd::DeleteRow Usuwa wiersz z okna podziału.
CSplitterWnd::DeleteView Usuwa widok z okna podziału.
CSplitterWnd::DoKeyboardSplit Wykonuje polecenie podziału klawiatury, zwykle "Podział okna".
CSplitterWnd::DoScroll Wykonuje synchronizowane przewijanie okien podzielonych.
CSplitterWnd::DoScrollBy Przewija okna podzielone według danej liczby pikseli.
CSplitterWnd::GetActivePane Określa aktywne okienko z fokusu lub aktywnego widoku w ramce.
CSplitterWnd::GetColumnCount Zwraca bieżącą liczbę kolumn okienka.
CSplitterWnd::GetColumnInfo Zwraca informacje o określonej kolumnie.
CSplitterWnd::GetPane Zwraca okienko w określonym wierszu i kolumnie.
CSplitterWnd::GetRowCount Zwraca bieżącą liczbę wierszy okienka.
CSplitterWnd::GetRowInfo Zwraca informacje dotyczące określonego wiersza.
CSplitterWnd::GetScrollStyle Zwraca styl udostępnionego paska przewijania.
CSplitterWnd::IdFromRowCol Zwraca identyfikator okna podrzędnego okienka w określonym wierszu i kolumnie.
CSplitterWnd::IsChildPane Wywołaj metodę , aby określić, czy okno jest obecnie okienkiem podrzędnym tego okna podziału.
CSplitterWnd::IsTracking Określa, czy pasek podziału jest obecnie przenoszony.
CSplitterWnd::RecalcLayout Wywołaj polecenie , aby ponownie rozdysponować okno podziału po dostosowaniu rozmiaru wiersza lub kolumny.
CSplitterWnd::SetActivePane Ustawia okienko jako aktywne w ramce.
CSplitterWnd::SetColumnInfo Wywołaj metodę , aby ustawić informacje o określonej kolumnie.
CSplitterWnd::SetRowInfo Wywołaj metodę , aby ustawić określone informacje o wierszu.
CSplitterWnd::SetScrollStyle Określa nowy styl paska przewijania dla obsługi udostępnionego paska przewijania okna podziału.
CSplitterWnd::SplitColumn Wskazuje, gdzie okno ramowe dzieli się pionowo.
CSplitterWnd::SplitRow Wskazuje, gdzie okno ramki dzieli się poziomo.

Metody chronione

Nazwa/nazwisko opis
CSplitterWnd::OnDraw Wywoływana przez strukturę w celu narysowania okna podziału.
CSplitterWnd::OnDrawSplitter Renderuje obraz okna podziału.
CSplitterWnd::OnInvertTracker Renderuje obraz okna podzielonego na taki sam rozmiar i kształt jak okno ramki.

Uwagi

Okienko jest zwykle obiektem specyficznym dla aplikacji pochodzącym z CViewklasy , ale może to być dowolny CWnd obiekt, który ma odpowiedni identyfikator okna podrzędnego.

CSplitterWnd Obiekt jest zwykle osadzony w obiekcie nadrzędnym CFrameWnd lub CMDIChildWnd obiekcie. CSplitterWnd Utwórz obiekt, wykonując następujące czynności:

  1. Osadź zmienną składową CSplitterWnd w ramce nadrzędnej.

  2. Zastąpić funkcję składową ramki nadrzędnej CFrameWnd::OnCreateClient .

  3. Z wewnątrz przesłoniętej OnCreateClientfunkcji wywołaj Create funkcję CSplitterWndlub CreateStatic elementu członkowskiego .

Wywołaj funkcję składową, Create aby utworzyć dynamiczne okno podziału. Dynamiczne okno podziału jest zwykle używane do tworzenia i przewijania wielu pojedynczych okienek lub widoków tego samego dokumentu. Platforma automatycznie tworzy początkowe okienko dla podziału; następnie platforma tworzy, zmienia rozmiar i usuwa dodatkowe okienka, ponieważ użytkownik obsługuje kontrolki okna podziału.

Podczas wywoływania Createmetody należy określić minimalną wysokość wiersza i szerokość kolumny, która określa, kiedy okienka są zbyt małe, aby być w pełni wyświetlane. Po wywołaniu Createmetody można dostosować te minimum, wywołując SetColumnInfo funkcje składowe i SetRowInfo .

Użyj również funkcji składowych SetColumnInfo i SetRowInfo , aby ustawić "idealną" szerokość kolumny i "idealną" wysokość dla wiersza. Gdy platforma wyświetla okno podziału, najpierw wyświetla ramkę nadrzędną, a następnie okno podziału. Następnie struktura określa okienka w kolumnach i wierszach zgodnie z ich idealnymi wymiarami, pracując od lewego górnego do prawego dolnego rogu obszaru klienta okna podziału.

Wszystkie okienka w dynamicznym oknie podziału muszą należeć do tej samej klasy. Znane aplikacje obsługujące dynamiczne okna podziału obejmują programy Microsoft Word i Microsoft Excel.

Użyj funkcji składowej CreateStatic , aby utworzyć statyczne okno podziału. Użytkownik może zmienić tylko rozmiar okienek w statycznym oknie rozdzielacze, a nie ich liczbę lub kolejność.

Podczas tworzenia rozdzielacze statycznego należy utworzyć wszystkie okienka rozdzielacze statycznego. Upewnij się, że wszystkie okienka są tworzone przed zwróceniem funkcji składowej ramki OnCreateClient nadrzędnej lub platforma nie wyświetli poprawnie okna.

CreateStatic Funkcja składowa automatycznie inicjuje statyczny rozdzielacz o minimalnej wysokości wiersza i szerokości kolumny 0. Po wywołaniu Createmetody dostosuj te minimum, wywołując SetColumnInfo funkcje składowe i SetRowInfo . SetColumnInfo Użyj polecenia i SetRowInfo po wywołaniu CreateStatic polecenia , aby wskazać żądane idealne wymiary okienka.

Poszczególne okienka statycznego podziału często należą do różnych klas. Przykłady okien podziału statycznego można znaleźć w edytorze grafiki i Menedżerze plików systemu Windows.

Okno podziału obsługuje specjalne paski przewijania (oprócz pasków przewijania, które mogą mieć okienka). Te paski przewijania są elementami podrzędnymi CSplitterWnd obiektu i są udostępniane okienkom.

Te specjalne paski przewijania są tworzone podczas tworzenia okna podziału. Na przykład, który CSplitterWnd ma jeden wiersz, dwie kolumny, a WS_VSCROLL styl wyświetli pionowy pasek przewijania, który jest współużytkowany przez dwa okienka. Gdy użytkownik przenosi pasek przewijania, WM_VSCROLL komunikaty są wysyłane do obu okienek. Gdy okienka ustawią położenie paska przewijania, zostanie ustawiony udostępniony pasek przewijania.

Aby uzyskać więcej informacji na temat okien rozdzielanych, zobacz Informacje techniczne 29.

Aby uzyskać więcej informacji na temat tworzenia dynamicznych okien rozdzielanych, zobacz:

Hierarchia dziedziczenia

CObject

CCmdTarget

CWnd

CSplitterWnd

Wymagania

Nagłówek: afxext.h

CSplitterWnd::ActivateNext

Wywoływana przez platformę w celu wykonania polecenia Następny okienko lub Poprzednie okienko.

virtual void ActivateNext(BOOL bPrev = FALSE);

Parametry

bPrev
Wskazuje, które okno ma być aktywowane. TRUE dla poprzednich; FALSE dla następnej.

Uwagi

Ta funkcja składowa jest poleceniem wysokiego poziomu używanym przez CView klasę do delegowania do implementacji CSplitterWnd .

CSplitterWnd::CanActivateNext

Wywoływana przez platformę w celu sprawdzenia, czy jest obecnie możliwe polecenie Następne okienko lub Poprzednie okienko.

virtual BOOL CanActivateNext(BOOL bPrev = FALSE);

Parametry

bPrev
Wskazuje, które okno ma być aktywowane. TRUE dla poprzednich; FALSE dla następnej.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest poleceniem wysokiego poziomu używanym przez CView klasę do delegowania do implementacji CSplitterWnd .

CSplitterWnd::Create

Aby utworzyć okno dynamicznego podziału, wywołaj funkcję składową 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);

Parametry

pParentWnd
Okno ramki nadrzędnej okna podziału.

nMaxRows
Maksymalna liczba wierszy w oknie rozdzielania. Ta wartość nie może przekraczać 2.

nMaxCols
Maksymalna liczba kolumn w oknie rozdzielania. Ta wartość nie może przekraczać 2.

sizeMin
Określa minimalny rozmiar, w którym może być wyświetlane okienko.

pContext
Wskaźnik do CCreateContext struktury. W większości przypadków może to być pContext przekazane do okna ramki nadrzędnej.

dwStyle
Określa styl okna.

nID
Identyfikator okna podrzędnego okna. Identyfikator może być AFX_IDW_PANE_FIRST , chyba że okno podziału jest zagnieżdżone wewnątrz innego okna podziału.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Obiekt nadrzędny CFrameWnd lub CMDIChildWnd obiekt można osadzićCSplitterWnd, wykonując następujące czynności:

  1. Osadź zmienną składową CSplitterWnd w ramce nadrzędnej.

  2. Zastąpić funkcję składową ramki nadrzędnej CFrameWnd::OnCreateClient .

  3. Wywołaj Create funkcję składową z wewnątrz przesłoniętego OnCreateClientelementu .

Podczas tworzenia okna podziału z poziomu ramki nadrzędnej przekaż parametr ramki pContext nadrzędnej do okna podziału. W przeciwnym razie ten parametr może mieć wartość NULL.

Początkowa minimalna wysokość wiersza i szerokość kolumny dynamicznego okna podziału są ustawiane przez sizeMin parametr . Te minimum, które określają, czy okienko jest zbyt małe, aby było wyświetlane w całości, można zmienić za pomocą funkcji składowych SetRowInfo i SetColumnInfo .

Aby uzyskać więcej informacji na temat dynamicznych okien rozdzielanych, zobacz artykuł "Splitter Windows" ( Wiele typów dokumentów, widoków i okien ramowych), Technical Note 29 oraz CSplitterWnd omówienie klasy.

Przykład

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

Wywoływana przez strukturę w celu utworzenia udostępnionej kontrolki paska przewijania.

virtual BOOL CreateScrollBarCtrl(
    DWORD dwStyle,
    UINT nID);

Parametry

dwStyle
Określa styl okna.

nID
Identyfikator okna podrzędnego okna. Identyfikator może być AFX_IDW_PANE_FIRST , chyba że okno podziału jest zagnieżdżone wewnątrz innego okna podziału.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Zastąpić, CreateScrollBarCtrl aby dołączyć dodatkowe kontrolki obok paska przewijania. Domyślne zachowanie polega na utworzeniu normalnych kontrolek paska przewijania systemu Windows.

CSplitterWnd::CreateStatic

Aby utworzyć statyczne okno rozdzielającej, wywołaj funkcję składową CreateStatic .

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

Parametry

pParentWnd
Okno ramki nadrzędnej okna podziału.

nRows
Liczba wierszy. Ta wartość nie może przekraczać 16.

nCols
Liczba kolumn Ta wartość nie może przekraczać 16.

dwStyle
Określa styl okna.

nID
Identyfikator okna podrzędnego okna. Identyfikator może być AFX_IDW_PANE_FIRST , chyba że okno podziału jest zagnieżdżone wewnątrz innego okna podziału.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Element A CSplitterWnd jest zwykle osadzony w obiekcie nadrzędnym CFrameWnd lub CMDIChildWnd obiektowym, wykonując następujące czynności:

  1. Osadź zmienną składową CSplitterWnd w ramce nadrzędnej.

  2. Zastąpić funkcję składową ramki nadrzędnej OnCreateClient .

  3. Wywołaj CreateStatic funkcję składową z wewnątrz przesłoniętego CFrameWnd::OnCreateClientelementu .

Statyczne okno podziału zawiera stałą liczbę okienek, często z różnych klas.

Podczas tworzenia okna rozdzielaczego statycznego należy jednocześnie utworzyć wszystkie okienka. Funkcja CreateView składowa jest zwykle używana w tym celu, ale można również utworzyć inne klasy nieoglądowe.

Początkowa minimalna wysokość wiersza i szerokość kolumny dla okna rozdzielanego statycznego wynosi 0. Te minimum, które określają, kiedy okienko jest zbyt małe, aby było wyświetlane w całości, można zmienić za pomocą funkcji składowych SetRowInfo i SetColumnInfo .

Aby dodać paski przewijania do statycznego okna podziału, dodaj WS_HSCROLL style i WS_VSCROLL do elementu dwStyle.

Zobacz sekcję "Splitter Windows" w artykule Wiele typów dokumentów, widoków i okien ramowych, Technical Note 29 i CSplitterWnd omówienie klasy, aby uzyskać więcej informacji na temat okien rozdzielanych statycznych.

CSplitterWnd::CreateView

Tworzy okienka dla okna rozdzielanego statycznego.

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

Parametry

row
Określa wiersz okna podziału, w którym ma być umieszczany nowy widok.

col
Określa kolumnę okna podziału, w której ma być umieszczany nowy widok.

pViewClass
Określa CRuntimeClass nowy widok.

sizeInit
Określa początkowy rozmiar nowego widoku.

pContext
Wskaźnik do kontekstu tworzenia używanego do utworzenia widoku (zwykle pContext przekazywane do zastępowanej CFrameWnd::OnCreateClient funkcji składowej ramki nadrzędnej, w której jest tworzone okno podziału).

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Wszystkie okienka statycznego okna podziału należy utworzyć, zanim platforma wyświetli rozdzielacz.

Platforma wywołuje również tę funkcję składową, aby utworzyć nowe okienka, gdy użytkownik dynamicznego okna podziału dzieli okienko, wiersz lub kolumnę.

Przykład

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

Wywołaj metodę , aby skonstruować CSplitterWnd obiekt.

CSplitterWnd();

Uwagi

Skonstruuj CSplitterWnd obiekt w dwóch krokach. Najpierw wywołaj konstruktor, który tworzy CSplitterWnd obiekt, a następnie wywołaj Create funkcję składową, która tworzy okno podziału i dołącza go do CSplitterWnd obiektu.

CSplitterWnd::DeleteColumn

Usuwa kolumnę z okna podziału.

virtual void DeleteColumn(int colDelete);

Parametry

colDelete
Określa kolumnę do usunięcia.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę w celu zaimplementowania logiki dynamicznego okna podziału (czyli jeśli okno podziału ma SPLS_DYNAMIC_SPLIT styl). Można go dostosować wraz z funkcją CreateViewwirtualną , aby zaimplementować bardziej zaawansowane dynamiczne rozdzielacze.

CSplitterWnd::DeleteRow

Usuwa wiersz z okna podziału.

virtual void DeleteRow(int rowDelete);

Parametry

rowDelete
Określa wiersz do usunięcia.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę w celu zaimplementowania logiki dynamicznego okna podziału (czyli jeśli okno podziału ma SPLS_DYNAMIC_SPLIT styl). Można go dostosować wraz z funkcją CreateViewwirtualną , aby zaimplementować bardziej zaawansowane dynamiczne rozdzielacze.

CSplitterWnd::DeleteView

Usuwa widok z okna podziału.

virtual void DeleteView(
    int row,
    int col);

Parametry

row
Określa wiersz okna podziału, w którym ma zostać usunięty widok.

col
Określa kolumnę okna podziału, w której ma zostać usunięty widok.

Uwagi

Jeśli aktywny widok zostanie usunięty, następny widok stanie się aktywny. Domyślna implementacja zakłada, że widok zostanie automatycznie usunięty w programie PostNcDestroy.

Ta funkcja składowa jest wywoływana przez strukturę w celu zaimplementowania logiki dynamicznego okna podziału (czyli jeśli okno podziału ma SPLS_DYNAMIC_SPLIT styl). Można go dostosować wraz z funkcją CreateViewwirtualną , aby zaimplementować bardziej zaawansowane dynamiczne rozdzielacze.

CSplitterWnd::DoKeyboardSplit

Wykonuje polecenie podziału klawiatury, zwykle "Podział okna".

virtual BOOL DoKeyboardSplit();

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest poleceniem wysokiego poziomu używanym przez CView klasę do delegowania do implementacji CSplitterWnd .

CSplitterWnd::DoScroll

Wykonuje synchronizowane przewijanie okien podzielonych.

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

Parametry

pViewFrom
Wskaźnik do widoku, z którego pochodzi komunikat przewijania.

nScrollCode
Kod paska przewijania wskazujący żądanie przewijania użytkownika. Ten parametr składa się z dwóch części: bajtu o niskiej kolejności, który określa typ przewijania występującego w poziomie i bajt o wysokiej kolejności, który określa typ przewijania występującego w pionie:

  • SB_BOTTOM Przewija się do dołu.

  • SB_LINEDOWN Przewija jeden wiersz w dół.

  • SB_LINEUP Przewija jeden wiersz w górę.

  • SB_PAGEDOWN Przewija jedną stronę w dół.

  • SB_PAGEUP Przewija jedną stronę w górę.

  • SB_TOP Przewija się do góry.

bDoScroll
Określa, czy ma miejsce określona akcja przewijania. Jeśli istnieje TRUE (oznacza to, że istnieje okno podrzędne i jeśli okna podzielone mają zakres przewijania), można wykonać określoną akcję przewijania. bDoScroll FALSE Jeśli bDoScroll tak jest (oznacza to, że żadne okno podrzędne nie istnieje lub widoki podziału nie mają zakresu przewijania), przewijanie nie występuje.

Wartość zwracana

Niezerowe, jeśli występuje synchronizowane przewijanie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę do wykonywania synchronizowanego przewijania okien podzielonych, gdy widok odbiera komunikat przewijania. Zastąpuj, aby wymagać akcji przez użytkownika przed zezwoleniem na synchronizowane przewijanie.

CSplitterWnd::DoScrollBy

Przewija okna podzielone według danej liczby pikseli.

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

Parametry

pViewFrom
Wskaźnik do widoku, z którego pochodzi komunikat przewijania.

sizeScroll
Liczba pikseli do przewinięcia w poziomie i w pionie.

bDoScroll
Określa, czy ma miejsce określona akcja przewijania. Jeśli istnieje TRUE (oznacza to, że istnieje okno podrzędne i jeśli okna podzielone mają zakres przewijania), można wykonać określoną akcję przewijania. bDoScroll FALSE Jeśli bDoScroll tak jest (oznacza to, że żadne okno podrzędne nie istnieje lub widoki podziału nie mają zakresu przewijania), przewijanie nie występuje.

Wartość zwracana

Niezerowe, jeśli występuje synchronizowane przewijanie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę w odpowiedzi na komunikat przewijania, aby wykonać zsynchronizowane przewijanie okien podzielonych o ilość w pikselach wskazanych przez sizeScroll. Wartości dodatnie wskazują przewijanie w dół i w prawo; wartości ujemne wskazują przewijanie w górę i po lewej stronie.

Zastąpić, aby wymagać akcji przez użytkownika przed zezwoleniem na przewijanie.

CSplitterWnd::GetActivePane

Określa aktywne okienko z fokusu lub aktywnego widoku w ramce.

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

Parametry

pRow
Wskaźnik do elementu int w celu pobrania numeru wiersza aktywnego okienka.

pCol
Wskaźnik do elementu int w celu pobrania numeru kolumny aktywnego okienka.

Wartość zwracana

Wskaźnik do aktywnego okienka. NULL jeśli nie istnieje aktywne okienko.

Uwagi

Ta funkcja składowa jest wywoływana przez platformę w celu określenia aktywnego okienka w oknie rozdzielaczy. Zastąpij, aby wymagać akcji przez użytkownika przed pobraniem aktywnego okienka.

CSplitterWnd::GetColumnCount

Zwraca bieżącą liczbę kolumn okienka.

int GetColumnCount() const;

Wartość zwracana

Zwraca bieżącą liczbę kolumn w rozdzielaniu. W przypadku splittera statycznego będzie to również maksymalna liczba kolumn.

CSplitterWnd::GetColumnInfo

Zwraca informacje o określonej kolumnie.

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

Parametry

col
Określa kolumnę.

cxCur
Odwołanie do elementu int , które ma być ustawione na bieżącą szerokość kolumny.

cxMin
Odwołanie do elementu int , które ma zostać ustawione na bieżącą minimalną szerokość kolumny.

CSplitterWnd::GetPane

Zwraca okienko w określonym wierszu i kolumnie.

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

Parametry

row
Określa wiersz.

col
Określa kolumnę.

Wartość zwracana

Zwraca okienko w określonym wierszu i kolumnie. Zwrócone okienko jest zwykle klasą pochodną CView.

CSplitterWnd::GetRowCount

Zwraca bieżącą liczbę wierszy okienka.

int GetRowCount() const;

Wartość zwracana

Zwraca bieżącą liczbę wierszy w oknie podziału. W przypadku okna rozdzielanego statycznego będzie to również maksymalna liczba wierszy.

CSplitterWnd::GetRowInfo

Zwraca informacje dotyczące określonego wiersza.

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

Parametry

row
Określa wiersz.

cyCur
Odwołanie do ustawienia int na bieżącą wysokość wiersza w pikselach.

cyMin
Odwołanie do int ustawienia na bieżącą minimalną wysokość wiersza w pikselach.

Uwagi

Wywołaj tę funkcję składową, aby uzyskać informacje o określonym wierszu. Parametr cyCur jest wypełniony bieżącą wysokością określonego wiersza i cyMin jest wypełniony minimalną wysokością wiersza.

CSplitterWnd::GetScrollStyle

Zwraca styl udostępnionego paska przewijania dla okna podziału.

DWORD GetScrollStyle() const;

Wartość zwracana

Co najmniej jedna z następujących flag stylu systemu Windows, jeśli się powiedzie:

  • WS_HSCROLL Jeśli rozdzielacz aktualnie zarządza udostępnionymi poziomymi paskami przewijania.

  • WS_VSCROLL Jeśli rozdzielacz aktualnie zarządza udostępnionymi pionowymi paskami przewijania.

Jeśli zero, okno podziału nie zarządza obecnie żadnymi udostępnionymi paskami przewijania.

CSplitterWnd::IdFromRowCol

Uzyskuje identyfikator okna podrzędnego dla okienka w określonym wierszu i kolumnie.

int IdFromRowCol(
    int row,
    int col) const;

Parametry

row
Określa wiersz okna podziału.

col
Określa kolumnę okna podziału.

Wartość zwracana

Identyfikator okna podrzędnego dla okienka.

Uwagi

Ta funkcja składowa służy do tworzenia widoków innych niż okienka i może być wywoływana przed utworzeniem okienka.

Przykład

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

Określa, czy pWnd jest obecnie okienkiem podrzędnym tego okna podziału.

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

Parametry

pWnd
Wskaźnik do CWnd obiektu do przetestowania.

pRow
Wskaźnik do int , w którym ma być przechowywany numer wiersza.

pCol
Wskaźnik do int kolumny, w której ma być przechowywany numer kolumny.

Wartość zwracana

Jeśli niezerowa, pWnd jest obecnie okienkiem podrzędnym tego okna podziału i pRow pCol są wypełnione pozycją okienka w oknie podziału. Jeśli pWnd nie jest okienkiem podrzędnym tego okna podziału, zwracana jest wartość 0.

Uwagi

W wersjach visual C++ wcześniejszych niż 6.0 ta funkcja została zdefiniowana jako

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

Ta wersja jest teraz przestarzała i nie powinna być używana.

CSplitterWnd::IsTracking

Wywołaj tę funkcję składową, aby określić, czy pasek podziału w oknie jest obecnie przenoszony.

BOOL IsTracking();

Wartość zwracana

Niezerowe, jeśli operacja rozdzielająca jest w toku; w przeciwnym razie 0.

CSplitterWnd::OnDrawSplitter

Renderuje obraz okna podziału.

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

Parametry

pDC
Wskaźnik do kontekstu urządzenia, w którym ma być rysowanie. Jeśli pDC element ma NULLwartość , CWnd::RedrawWindow jest wywoływany przez strukturę i nie jest rysowane żadne okno podziału.

nType
Wartość enum ESplitType, która może być jedną z następujących wartości:

  • splitBox Pole przeciągania rozdzielającej.

  • splitBar Pasek, który pojawia się między dwoma podzielonymi oknami.

  • splitIntersection Skrzyżowanie okien podzielonych. Ten element nie będzie wywoływany podczas uruchamiania w systemie Windows 95/98.

  • splitBorder Obramowania okien podzielonych.

rect
Odwołanie do CRect obiektu określającego rozmiar i kształt okien podzielonych.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę, aby narysować i określić dokładne cechy okna podziału. Zastąpij OnDrawSplitter zaawansowane dostosowywanie obrazów dla różnych składników graficznych okna podziału. Domyślne obrazy są podobne do rozdzielanego w programie Microsoft Works dla systemu Windows lub Microsoft Windows 95/98, w których przecięcie pasków rozdzielających są łączone.

Aby uzyskać więcej informacji na temat dynamicznych okien rozdzielanych, zobacz artykuł "Splitter Windows" ( Wiele typów dokumentów, widoków i okien ramowych), Technical Note 29 oraz CSplitterWnd omówienie klasy.

CSplitterWnd::OnInvertTracker

Renderuje obraz okna podzielonego na taki sam rozmiar i kształt jak okno ramki.

virtual void OnInvertTracker(const CRect& rect);

Parametry

rect
Odwołanie do CRect obiektu określającego prostokąt śledzenia.

Uwagi

Ta funkcja składowa jest wywoływana przez strukturę podczas zmiany rozmiaru rozdzielaczy. Zastąpsuj OnInvertTracker zaawansowane dostosowywanie obrazów okna podziału. Domyślne obrazy są podobne do rozdzielanego w programie Microsoft Works dla systemu Windows lub Microsoft Windows 95/98, w których przecięcie pasków rozdzielających są łączone.

Aby uzyskać więcej informacji na temat dynamicznych okien rozdzielanych, zobacz artykuł "Splitter Windows" ( Wiele typów dokumentów, widoków i okien ramowych), Technical Note 29 oraz CSplitterWnd omówienie klasy.

CSplitterWnd::RecalcLayout

Wywołaj polecenie , aby ponownie rozdysponować okno podziału po dostosowaniu rozmiaru wiersza lub kolumny.

virtual void RecalcLayout();

Uwagi

Wywołaj tę funkcję składową, aby poprawnie ponownie rozdysponować okno podziału po dostosowaniu rozmiarów wierszy i kolumn za pomocą SetRowInfo funkcji składowych i SetColumnInfo . Jeśli zmienisz rozmiary wierszy i kolumn w ramach procesu tworzenia przed widocznym oknem podziału, nie jest konieczne wywołanie tej funkcji składowej.

Struktura wywołuje tę funkcję składową za każdym razem, gdy użytkownik zmienia rozmiar okna podziału lub przenosi podział.

Przykład

Zobacz przykład dla elementu CSplitterWnd::SetColumnInfo.

CSplitterWnd::SetActivePane

Ustawia okienko jako aktywne w ramce.

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

Parametry

row
Jeśli pWnd ma NULLwartość , określa wiersz w okienku, który będzie aktywny.

col
Jeśli pWnd ma NULLwartość , określa kolumnę w okienku, która będzie aktywna.

pWnd
Wskaźnik do CWnd obiektu. Jeśli NULLokienko określone przez row element i col jest ustawione jako aktywne. Jeśli nie NULL, określa okienko, które jest ustawione jako aktywne.

Uwagi

Ta funkcja składowa jest wywoływana przez platformę, aby ustawić okienko jako aktywne, gdy użytkownik zmieni fokus na okienko w oknie ramki. Możesz jawnie wywołać SetActivePane polecenie , aby zmienić fokus na określony widok.

Określ okienko, podając wiersz i kolumnę lub podając wartość pWnd.

CSplitterWnd::SetColumnInfo

Wywołaj metodę , aby ustawić informacje o określonej kolumnie.

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

Parametry

col
Określa kolumnę okna podziału.

cxIdeal
Określa idealną szerokość kolumny okna podziału w pikselach.

cxMin
Określa minimalną szerokość kolumny okna podziału w pikselach.

Uwagi

Wywołaj tę funkcję składową, aby ustawić nową minimalną szerokość i idealną szerokość kolumny. Minimalna wartość kolumny określa, kiedy kolumna będzie za mała, aby być w pełni wyświetlana.

Gdy platforma wyświetla okno podziału, określa okienka w kolumnach i wierszach zgodnie z ich idealnymi wymiarami, pracując od lewego górnego do prawego dolnego rogu obszaru klienta okna podziału.

Przykład

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

Wywołaj metodę , aby ustawić określone informacje o wierszu.

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

Parametry

row
Określa wiersz okna podziału.

cyIdeal
Określa idealną wysokość wiersza okna podziału w pikselach.

cyMin
Określa minimalną wysokość wiersza okna podziału w pikselach.

Uwagi

Wywołaj tę funkcję składową, aby ustawić nową minimalną wysokość i idealną wysokość wiersza. Minimalna wartość wiersza określa, kiedy wiersz będzie zbyt mały, aby był w pełni wyświetlany.

Gdy platforma wyświetla okno podziału, określa okienka w kolumnach i wierszach zgodnie z ich idealnymi wymiarami, pracując od lewego górnego do prawego dolnego rogu obszaru klienta okna podziału.

CSplitterWnd::SetScrollStyle

Określa nowy styl przewijania dla obsługi udostępnionego paska przewijania okna podziału.

void SetScrollStyle(DWORD dwStyle);

Parametry

dwStyle
Nowy styl przewijania dla udostępnionej obsługi paska przewijania okna podziału, który może być jedną z następujących wartości:

  • WS_HSCROLL Tworzenie/pokazywanie poziomych udostępnionych pasków przewijania.

  • WS_VSCROLL Tworzenie/pokazywanie pionowych udostępnionych pasków przewijania.

Uwagi

Po utworzeniu paska przewijania nie zostanie on zniszczony, nawet jeśli SetScrollStyle zostanie wywołany bez tego stylu; zamiast tego te paski przewijania są ukryte. Dzięki temu paski przewijania zachowują swój stan, mimo że są ukryte. Po wywołaniu SetScrollStylemetody należy wywołać RecalcLayout wszystkie zmiany, aby zaczęły obowiązywać.

CSplitterWnd::SplitColumn

Wskazuje, gdzie okno ramowe dzieli się pionowo.

virtual BOOL SplitColumn(int cxBefore);

Parametry

cxBefore
Położenie w pikselach, przed którym następuje podział.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest wywoływana podczas tworzenia pionowego okna podziału. SplitColumn wskazuje domyślną lokalizację, w której występuje podział.

SplitColumn program jest wywoływany przez strukturę w celu zaimplementowania logiki dynamicznego okna podziału (czyli jeśli okno podziału ma SPLS_DYNAMIC_SPLIT styl). Można go dostosować wraz z funkcją CreateViewwirtualną , aby zaimplementować bardziej zaawansowane dynamiczne rozdzielacze.

CSplitterWnd::SplitRow

Wskazuje, gdzie okno ramki dzieli się poziomo.

virtual BOOL SplitRow(int cyBefore);

Parametry

cyBefore
Położenie w pikselach, przed którym następuje podział.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa jest wywoływana podczas tworzenia okna podziału poziomego. SplitRow wskazuje domyślną lokalizację, w której występuje podział.

SplitRow program jest wywoływany przez strukturę w celu zaimplementowania logiki dynamicznego okna podziału (czyli jeśli okno podziału ma SPLS_DYNAMIC_SPLIT styl). Można go dostosować wraz z funkcją CreateViewwirtualną , aby zaimplementować bardziej zaawansowane dynamiczne rozdzielacze.

CSplitterWnd::OnDraw

Wywoływana przez strukturę w celu narysowania okna podziału.

virtual void OnDraw(CDC* pDC);

Parametry

pDC
Wskaźnik do kontekstu urządzenia.

Uwagi

Zobacz też

Przykład MFC VIEWEX
CWnd Klasa
Wykres hierarchii
CView Klasa