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 CView
klasy , 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:
Osadź zmienną składową
CSplitterWnd
w ramce nadrzędnej.Zastąpić funkcję składową ramki nadrzędnej
CFrameWnd::OnCreateClient
.Z wewnątrz przesłoniętej
OnCreateClient
funkcji wywołajCreate
funkcjęCSplitterWnd
lubCreateStatic
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 Create
metody 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 Create
metody 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 Create
metody 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:
Przykładowy scribble MFC
Przykład
VIEWEX
MFC .
Hierarchia dziedziczenia
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:
Osadź zmienną składową
CSplitterWnd
w ramce nadrzędnej.Zastąpić funkcję składową ramki nadrzędnej
CFrameWnd::OnCreateClient
.Wywołaj
Create
funkcję składową z wewnątrz przesłoniętegoOnCreateClient
elementu .
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:
Osadź zmienną składową
CSplitterWnd
w ramce nadrzędnej.Zastąpić funkcję składową ramki nadrzędnej
OnCreateClient
.Wywołaj
CreateStatic
funkcję składową z wewnątrz przesłoniętegoCFrameWnd::OnCreateClient
elementu .
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ą CreateView
wirtualną , 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ą CreateView
wirtualną , 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ą CreateView
wirtualną , 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 NULL
wartość , 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 NULL
wartość , określa wiersz w okienku, który będzie aktywny.
col
Jeśli pWnd
ma NULL
wartość , określa kolumnę w okienku, która będzie aktywna.
pWnd
Wskaźnik do CWnd
obiektu. Jeśli NULL
okienko 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 SetScrollStyle
metody 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ą CreateView
wirtualną , 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ą CreateView
wirtualną , 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