Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt die Funktionalität eines unterteilten Fensters bereit. Dabei handelt es sich um ein Fenster, das mehrere Bereiche enthält.
Syntax
class CSplitterWnd : public CWnd
Member
Öffentliche Konstruktoren
| Name | Beschreibung |
|---|---|
CSplitterWnd::CSplitterWnd |
Aufrufen zum Erstellen eines CSplitterWnd Objekts. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
CSplitterWnd::ActivateNext |
Führt den Befehl "Nächster Bereich" oder "Vorheriger Bereich" aus. |
CSplitterWnd::CanActivateNext |
Überprüft, ob der Befehl "Nächster Bereich" oder "Vorheriger Bereich" zurzeit möglich ist. |
CSplitterWnd::Create |
Rufen Sie auf, um ein dynamisches Teilerfenster zu erstellen und es an das CSplitterWnd Objekt anzufügen. |
CSplitterWnd::CreateScrollBarCtrl |
Erstellt ein freigegebenes Bildlaufleisten-Steuerelement. |
CSplitterWnd::CreateStatic |
Rufen Sie auf, um ein statisches Teilerfenster zu erstellen und an das CSplitterWnd Objekt anzufügen. |
CSplitterWnd::CreateView |
Rufen Sie auf, um einen Bereich in einem Teilerfenster zu erstellen. |
CSplitterWnd::DeleteColumn |
Löscht eine Spalte aus dem Splitterfenster. |
CSplitterWnd::DeleteRow |
Löscht eine Zeile aus dem Teilerfenster. |
CSplitterWnd::DeleteView |
Löscht eine Ansicht aus dem Splitterfenster. |
CSplitterWnd::DoKeyboardSplit |
Führt den Befehl zum Teilen der Tastatur aus, in der Regel "Fenster teilen". |
CSplitterWnd::DoScroll |
Führt synchronisierten Bildlauf von geteilten Fenstern aus. |
CSplitterWnd::DoScrollBy |
Scrollt geteilte Fenster um eine bestimmte Anzahl von Pixeln. |
CSplitterWnd::GetActivePane |
Bestimmt den aktiven Bereich aus dem Fokus oder der aktiven Ansicht im Frame. |
CSplitterWnd::GetColumnCount |
Gibt die Anzahl der aktuellen Bereichsspalten zurück. |
CSplitterWnd::GetColumnInfo |
Gibt Informationen zur angegebenen Spalte zurück. |
CSplitterWnd::GetPane |
Gibt den Bereich an der angegebenen Zeile und Spalte zurück. |
CSplitterWnd::GetRowCount |
Gibt die Anzahl der aktuellen Bereichszeilen zurück. |
CSplitterWnd::GetRowInfo |
Gibt Informationen zu der angegebenen Zeile zurück. |
CSplitterWnd::GetScrollStyle |
Gibt die Formatvorlage für freigegebene Bildlaufleisten zurück. |
CSplitterWnd::IdFromRowCol |
Gibt die untergeordnete Fenster-ID des Bereichs in der angegebenen Zeile und Spalte zurück. |
CSplitterWnd::IsChildPane |
Rufen Sie auf, um zu bestimmen, ob das Fenster derzeit ein untergeordneter Bereich dieses Teilerfensters ist. |
CSplitterWnd::IsTracking |
Bestimmt, ob die Teilerleiste zurzeit verschoben wird. |
CSplitterWnd::RecalcLayout |
Rufen Sie auf, um das Teilerfenster nach dem Anpassen der Zeilen- oder Spaltengröße erneut anzuzeigen. |
CSplitterWnd::SetActivePane |
Legt einen Bereich auf den aktiven Bereich im Frame fest. |
CSplitterWnd::SetColumnInfo |
Aufrufen, um die angegebenen Spalteninformationen festzulegen. |
CSplitterWnd::SetRowInfo |
Aufrufen, um die angegebenen Zeileninformationen festzulegen. |
CSplitterWnd::SetScrollStyle |
Gibt die neue Bildlaufleistenart für die unterstützung des geteilten Fensters für die Bildlaufleiste an. |
CSplitterWnd::SplitColumn |
Gibt an, wo ein Rahmenfenster vertikal geteilt wird. |
CSplitterWnd::SplitRow |
Gibt an, wo ein Rahmenfenster horizontal geteilt wird. |
Geschützte Methoden
| Name | Beschreibung |
|---|---|
CSplitterWnd::OnDraw |
Wird vom Framework aufgerufen, um das Teilerfenster zu zeichnen. |
CSplitterWnd::OnDrawSplitter |
Rendert ein Bild eines geteilten Fensters. |
CSplitterWnd::OnInvertTracker |
Rendert das Bild eines geteilten Fensters so, dass es die gleiche Größe und Form wie das Rahmenfenster aufweist. |
Hinweise
Bei einem Bereich handelt es sich in der Regel um ein anwendungsspezifisches Objekt, das von CViewdiesem abgeleitet wird. Es kann sich jedoch um ein beliebiges CWnd Objekt handeln, das über die entsprechende untergeordnete Fenster-ID verfügt.
Ein CSplitterWnd Objekt wird in der Regel in ein übergeordnetes CFrameWnd Objekt oder CMDIChildWnd Objekt eingebettet. Erstellen Sie ein CSplitterWnd Objekt mithilfe der folgenden Schritte:
Betten Sie eine
CSplitterWndMembervariable in den übergeordneten Frame ein.Überschreiben Sie die Memberfunktion des übergeordneten
CFrameWnd::OnCreateClientFrames.Rufen Sie in der außerkraftsetzung
OnCreateClientdie Funktion oderCreateStaticMemberfunktionCreatevonCSplitterWnd.
Rufen Sie die Create Memberfunktion auf, um ein dynamisches Teilerfenster zu erstellen. Ein dynamisches Teilerfenster wird in der Regel verwendet, um eine Reihe einzelner Bereiche oder Ansichten desselben Dokuments zu erstellen und zu scrollen. Das Framework erstellt automatisch einen anfänglichen Bereich für den Teiler; anschließend erstellt, ändert sich die Größe des Frameworks und entfernt zusätzliche Bereiche, während der Benutzer die Steuerelemente des Splitterfensters betreibt.
Beim Aufrufen Creategeben Sie eine Mindestzeilenhöhe und Spaltenbreite an, die bestimmen, wann die Bereiche zu klein sind, um vollständig angezeigt werden zu können. Nachdem Sie aufgerufen Createhaben, können Sie diese Mindestwerte anpassen, indem Sie die SetColumnInfo Funktionen und SetRowInfo Memberfunktionen aufrufen.
Verwenden Sie außerdem die SetColumnInfo Funktionen und SetRowInfo Member, um eine "ideale" Breite für eine Spalte und eine "ideale" Höhe für eine Zeile festzulegen. Wenn das Framework ein Teilerfenster anzeigt, zeigt es zuerst den übergeordneten Frame und dann das Teilerfenster an. Das Framework legt dann die Bereiche in Spalten und Zeilen entsprechend ihren idealen Dimensionen fest, die von der oberen linken bis zur unteren rechten Ecke des Clientbereichs des Teilers funktionieren.
Alle Bereiche in einem dynamischen Teilerfenster müssen derselben Klasse entsprechen. Vertraute Anwendungen, die dynamische Splitterfenster unterstützen, umfassen Microsoft Word und Microsoft Excel.
Verwenden Sie die CreateStatic Memberfunktion, um ein statisches Teilerfenster zu erstellen. Der Benutzer kann nur die Größe der Bereiche in einem statischen Teilerfenster ändern, nicht seine Nummer oder Reihenfolge.
Sie müssen speziell alle Bereiche des statischen Spliters erstellen, wenn Sie den statischen Teiler erstellen. Stellen Sie sicher, dass Sie alle Bereiche erstellen, bevor die Memberfunktion des OnCreateClient übergeordneten Frames zurückgegeben wird, oder das Framework zeigt das Fenster nicht ordnungsgemäß an.
Die CreateStatic Memberfunktion initialisiert automatisch einen statischen Teiler mit einer Mindestzeilenhöhe und Spaltenbreite von 0. Passen Sie diese Mindestwerte nach dem Aufruf Createan, indem Sie die SetColumnInfo Funktionen und SetRowInfo Member aufrufen. Verwenden SetColumnInfo Sie auch und SetRowInfo nachdem Sie aufgerufen haben CreateStatic , um die gewünschten idealen Bereichsabmessungen anzugeben.
Die einzelnen Bereiche eines statischen Teilers gehören häufig zu verschiedenen Klassen. Beispiele für statische Teilerfenster finden Sie im Grafik-Editor und im Windows-Datei-Manager.
Ein Teilerfenster unterstützt spezielle Bildlaufleisten (abgesehen von den Bildlaufleisten, über die Bereiche verfügen können). Diese Bildlaufleisten sind untergeordnete Elemente des CSplitterWnd Objekts und werden für die Bereiche freigegeben.
Sie erstellen diese speziellen Bildlaufleisten, wenn Sie das Teilerfenster erstellen. Beispielsweise zeigt eine CSplitterWnd Zeile, zwei Spalten und die WS_VSCROLL Formatvorlage eine vertikale Bildlaufleiste an, die von den beiden Bereichen gemeinsam genutzt wird. Wenn der Benutzer die Bildlaufleiste verschiebt, WM_VSCROLL werden Nachrichten an beide Bereiche gesendet. Wenn die Bereiche die Bildlaufleistenposition festlegen, wird die freigegebene Bildlaufleiste festgelegt.
Weitere Informationen zu Splitterfenstern finden Sie in technischem Hinweis 29.
Weitere Informationen zum Erstellen dynamischer Splitterfenster finden Sie unter:
Vererbungshierarchie
CSplitterWnd
Anforderungen
Header: afxext.h
CSplitterWnd::ActivateNext
Vom Framework aufgerufen, um den Befehl "Nächster Bereich" oder "Vorheriger Bereich" auszuführen.
virtual void ActivateNext(BOOL bPrev = FALSE);
Parameter
bPrev
Gibt an, welches Fenster aktiviert werden soll. TRUE für vorherige; FALSE für nächstes.
Hinweise
Diese Memberfunktion ist ein Befehl auf hoher Ebene, der von der CView Klasse zum Delegieren an die CSplitterWnd Implementierung verwendet wird.
CSplitterWnd::CanActivateNext
Wird vom Framework aufgerufen, um zu überprüfen, ob der Befehl "Nächster Bereich" oder "Vorheriger Bereich" zurzeit möglich ist.
virtual BOOL CanActivateNext(BOOL bPrev = FALSE);
Parameter
bPrev
Gibt an, welches Fenster aktiviert werden soll. TRUE für vorherige; FALSE für nächstes.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Diese Memberfunktion ist ein Befehl auf hoher Ebene, der von der CView Klasse zum Delegieren an die CSplitterWnd Implementierung verwendet wird.
CSplitterWnd::Create
Rufen Sie die Create Memberfunktion auf, um ein dynamisches Teilerfenster zu erstellen.
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);
Parameter
pParentWnd
Das übergeordnete Rahmenfenster des Teilerfensters.
nMaxRows
Die maximale Anzahl von Zeilen im Teilerfenster. Dieser Wert darf 2 nicht überschreiten.
nMaxCols
Die maximale Anzahl von Spalten im Teilerfenster. Dieser Wert darf 2 nicht überschreiten.
sizeMin
Gibt die Mindestgröße an, in der ein Bereich angezeigt werden kann.
pContext
Ein Zeiger auf eine CCreateContext Struktur. In den meisten Fällen kann dies das pContext übergebene An das übergeordnete Rahmenfenster sein.
dwStyle
Gibt die Fensterformatvorlage an.
nID
Die untergeordnete Fenster-ID des Fensters. Die ID kann sein AFX_IDW_PANE_FIRST , es sei denn, das Splitterfenster ist in einem anderen Splitterfenster geschachtelt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Sie können ein Objekt CSplitterWnd in ein übergeordnetes CFrameWnd Objekt CMDIChildWnd einbetten, indem Sie die folgenden Schritte ausführen:
Betten Sie eine
CSplitterWndMembervariable in den übergeordneten Frame ein.Überschreiben Sie die Memberfunktion des übergeordneten
CFrameWnd::OnCreateClientFrames.Rufen Sie die
CreateMemberfunktion innerhalb des außerkraftsetzungenOnCreateClientauf.
Wenn Sie ein Teilerfenster aus einem übergeordneten Frame erstellen, übergeben Sie den Parameter des übergeordneten pContext Frames an das Teilerfenster. Andernfalls kann dieser Parameter sein NULL.
Die anfängliche Mindestzeilenhöhe und Spaltenbreite eines dynamischen Splitterfensters werden durch den sizeMin Parameter festgelegt. Diese Mindestwerte, die bestimmen, ob ein Bereich zu klein ist, um vollständig angezeigt zu werden, kann mit den SetRowInfo Funktionen und SetColumnInfo Membern geändert werden.
Weitere Informationen zu dynamischen Teilerfenstern finden Sie unter "Splitter Windows" im Artikel "Multiple Document Types, Views, and Frame Windows, Technical Note 29, and the CSplitterWnd class overview".
Beispiel
// 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
Vom Framework aufgerufen, um ein freigegebenes Bildlaufleisten-Steuerelement zu erstellen.
virtual BOOL CreateScrollBarCtrl(
DWORD dwStyle,
UINT nID);
Parameter
dwStyle
Gibt die Fensterformatvorlage an.
nID
Die untergeordnete Fenster-ID des Fensters. Die ID kann sein AFX_IDW_PANE_FIRST , es sei denn, das Splitterfenster ist in einem anderen Splitterfenster geschachtelt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Überschreiben, um zusätzliche Steuerelemente neben einer Bildlaufleiste einzuschließen CreateScrollBarCtrl . Das Standardverhalten besteht darin, normale Windows-Bildlaufleisten-Steuerelemente zu erstellen.
CSplitterWnd::CreateStatic
Rufen Sie die CreateStatic Memberfunktion auf, um ein statisches Teilerfenster zu erstellen.
virtual BOOL CreateStatic(
CWnd* pParentWnd,
int nRows,
int nCols,
DWORD dwStyle = WS_CHILD | WS_VISIBLE,
UINT nID = AFX_IDW_PANE_FIRST);
Parameter
pParentWnd
Das übergeordnete Rahmenfenster des Teilerfensters.
nRows
Die Anzahl der Zeilen. Dieser Wert darf 16 nicht überschreiten.
nCols
Die Anzahl der Spalten. Dieser Wert darf 16 nicht überschreiten.
dwStyle
Gibt die Fensterformatvorlage an.
nID
Die untergeordnete Fenster-ID des Fensters. Die ID kann sein AFX_IDW_PANE_FIRST , es sei denn, das Splitterfenster ist in einem anderen Splitterfenster geschachtelt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
A CSplitterWnd wird in der Regel in ein übergeordnetes CFrameWnd Objekt eingebettet CMDIChildWnd , indem die folgenden Schritte ausgeführt werden:
Betten Sie eine
CSplitterWndMembervariable in den übergeordneten Frame ein.Überschreiben Sie die Memberfunktion des übergeordneten
OnCreateClientFrames.Rufen Sie die
CreateStaticMemberfunktion innerhalb des außerkraftsetzungenCFrameWnd::OnCreateClientauf.
Ein statisches Teilerfenster enthält eine feste Anzahl von Bereichen, häufig aus verschiedenen Klassen.
Wenn Sie ein statisches Teilerfenster erstellen, müssen Sie gleichzeitig alle zugehörigen Bereiche erstellen. Die CreateView Memberfunktion wird in der Regel für diesen Zweck verwendet, Sie können aber auch andere Nichtansichtsklassen erstellen.
Die anfängliche Mindestzeilenhöhe und Spaltenbreite für ein statisches Teilerfenster beträgt 0. Diese Mindestwerte, die bestimmen, wann ein Bereich zu klein ist, um vollständig angezeigt zu werden, kann mit den SetRowInfo Funktionen und SetColumnInfo Membern geändert werden.
Zum Hinzufügen von Bildlaufleisten zu einem statischen Teilerfenster fügen Sie die WS_HSCROLL Formatvorlagen dwStylehinzuWS_VSCROLL.
Weitere Informationen zu statischen Teilerfenstern finden Sie im Artikel "Splitter Windows", "Mehrere Dokumenttypen", "Ansichten" und "Frame Windows", "Technical Note 29" CSplitterWnd .
CSplitterWnd::CreateView
Erstellt die Bereiche für ein statisches Teilerfenster.
virtual BOOL CreateView(
int row,
int col,
CRuntimeClass* pViewClass,
SIZE sizeInit,
CCreateContext* pContext);
Parameter
row
Gibt die Teilerfensterzeile an, in der die neue Ansicht platziert werden soll.
col
Gibt die Spalte des Geteilter Fensters an, in der die neue Ansicht platziert werden soll.
pViewClass
Gibt die CRuntimeClass neue Ansicht an.
sizeInit
Gibt die Anfangsgröße der neuen Ansicht an.
pContext
Ein Zeiger auf einen Erstellungskontext, der zum Erstellen der Ansicht verwendet wird (in der Regel wird die pContext überschriebene CFrameWnd::OnCreateClient Memberfunktion des übergeordneten Frames übergeben, in der das Teilerfenster erstellt wird).
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Alle Bereiche eines statischen Teilerfensters müssen erstellt werden, bevor das Framework den Teiler anzeigt.
Das Framework ruft diese Memberfunktion auch auf, um neue Bereiche zu erstellen, wenn der Benutzer eines dynamischen Teilerfensters einen Bereich, eine Zeile oder Spalte teilt.
Beispiel
// 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
Aufrufen zum Erstellen eines CSplitterWnd Objekts.
CSplitterWnd();
Hinweise
Erstellen Sie ein CSplitterWnd Objekt in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, der das CSplitterWnd Objekt erstellt, und rufen Sie dann die Create Memberfunktion auf, die das Splitterfenster erstellt und an das CSplitterWnd Objekt anfügt.
CSplitterWnd::DeleteColumn
Löscht eine Spalte aus dem Splitterfenster.
virtual void DeleteColumn(int colDelete);
Parameter
colDelete
Gibt die zu löschende Spalte an.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um die Logik des dynamischen Splitterfensters zu implementieren (d. r., wenn das Teilerfenster über die SPLS_DYNAMIC_SPLIT Formatvorlage verfügt). Sie kann zusammen mit der virtuellen Funktion CreateViewangepasst werden, um komplexere dynamische Splitter zu implementieren.
CSplitterWnd::DeleteRow
Löscht eine Zeile aus dem Teilerfenster.
virtual void DeleteRow(int rowDelete);
Parameter
rowDelete
Gibt die zu löschende Zeile an.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um die Logik des dynamischen Splitterfensters zu implementieren (d. r., wenn das Teilerfenster über die SPLS_DYNAMIC_SPLIT Formatvorlage verfügt). Sie kann zusammen mit der virtuellen Funktion CreateViewangepasst werden, um komplexere dynamische Splitter zu implementieren.
CSplitterWnd::DeleteView
Löscht eine Ansicht aus dem Splitterfenster.
virtual void DeleteView(
int row,
int col);
Parameter
row
Gibt die Teilerfensterzeile an, an der die Ansicht gelöscht werden soll.
col
Gibt die Spalte des Geteilter Fensters an, in der die Ansicht gelöscht werden soll.
Hinweise
Wenn die aktive Ansicht gelöscht wird, wird die nächste Ansicht aktiv. Bei der Standardimplementierung wird davon ausgegangen, dass die Ansicht automatisch gelöscht PostNcDestroywird.
Diese Memberfunktion wird vom Framework aufgerufen, um die Logik des dynamischen Splitterfensters zu implementieren (d. r., wenn das Teilerfenster über die SPLS_DYNAMIC_SPLIT Formatvorlage verfügt). Sie kann zusammen mit der virtuellen Funktion CreateViewangepasst werden, um komplexere dynamische Splitter zu implementieren.
CSplitterWnd::DoKeyboardSplit
Führt den Befehl zum Teilen der Tastatur aus, in der Regel "Fenster teilen".
virtual BOOL DoKeyboardSplit();
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Diese Memberfunktion ist ein Befehl auf hoher Ebene, der von der CView Klasse zum Delegieren an die CSplitterWnd Implementierung verwendet wird.
CSplitterWnd::DoScroll
Führt synchronisierten Bildlauf von geteilten Fenstern aus.
virtual BOOL DoScroll(
CView* pViewFrom,
UINT nScrollCode,
BOOL bDoScroll = TRUE);
Parameter
pViewFrom
Ein Zeiger auf die Ansicht, aus der die Bildlaufnachricht stammt.
nScrollCode
Ein Bildlaufleistencode, der die Bildlaufanforderung des Benutzers angibt. Dieser Parameter besteht aus zwei Teilen: einem Byte mit niedriger Reihenfolge, das den Typ des horizontalen Bildlaufs bestimmt, und einem Byte mit hoher Reihenfolge, das den Typ des vertikalen Bildlaufs bestimmt:
SB_BOTTOMScrollt nach unten.SB_LINEDOWNScrollt eine Zeile nach unten.SB_LINEUPScrollt eine Zeile nach oben.SB_PAGEDOWNScrollt eine Seite nach unten.SB_PAGEUPScrollt eine Seite nach oben.SB_TOPScrollt nach oben.
bDoScroll
Bestimmt, ob die angegebene Bildlaufaktion auftritt. Wenn bDoScroll ( TRUE d. h., wenn ein untergeordnetes Fenster vorhanden ist und die geteilten Fenster einen Bildlaufbereich haben), kann die angegebene Bildlaufaktion ausgeführt werden; wenn bDoScroll FALSE (d. h., wenn kein untergeordnetes Fenster vorhanden ist oder die geteilten Ansichten keinen Bildlaufbereich haben), tritt kein Bildlauf auf.
Rückgabewert
Nonzero, wenn synchronisierter Bildlauf auftritt; andernfalls 0.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um synchronisierten Bildlauf von geteilten Fenstern durchzuführen, wenn die Ansicht eine Bildlaufnachricht empfängt. Überschreiben, um eine Aktion durch den Benutzer vor dem Synchronisieren des Bildlaufs zu verlangen.
CSplitterWnd::DoScrollBy
Scrollt geteilte Fenster um eine bestimmte Anzahl von Pixeln.
virtual BOOL DoScrollBy(
CView* pViewFrom,
CSize sizeScroll,
BOOL bDoScroll = TRUE);
Parameter
pViewFrom
Ein Zeiger auf die Ansicht, aus der die Bildlaufnachricht stammt.
sizeScroll
Die Anzahl der Pixel, die horizontal und vertikal gescrollt werden sollen.
bDoScroll
Bestimmt, ob die angegebene Bildlaufaktion auftritt. Wenn bDoScroll ( TRUE d. h., wenn ein untergeordnetes Fenster vorhanden ist und die geteilten Fenster einen Bildlaufbereich haben), kann die angegebene Bildlaufaktion ausgeführt werden; wenn bDoScroll FALSE (d. h., wenn kein untergeordnetes Fenster vorhanden ist oder die geteilten Ansichten keinen Bildlaufbereich haben), tritt kein Bildlauf auf.
Rückgabewert
Nonzero, wenn synchronisierter Bildlauf auftritt; andernfalls 0.
Hinweise
Diese Memberfunktion wird vom Framework als Reaktion auf eine Bildlaufnachricht aufgerufen, um einen synchronisierten Bildlauf der geteilten Fenster um die Menge in Pixeln auszuführen, die durch sizeScrollangegeben wird. Positive Werte deuten darauf hin, dass der Bildlauf nach unten und nach rechts verschoben wird. Negative Werte deuten auf den Bildlauf nach oben und nach links hin hin.
Überschreiben, um eine Aktion durch den Benutzer vor dem Zulassen des Bildlaufs zu erfordern.
CSplitterWnd::GetActivePane
Bestimmt den aktiven Bereich aus dem Fokus oder der aktiven Ansicht im Frame.
virtual CWnd* GetActivePane(
int* pRow = NULL,
int* pCol = NULL);
Parameter
pRow
Ein Zeiger auf einen int , um die Zeilennummer des aktiven Bereichs abzurufen.
pCol
Ein Zeiger auf einen int , um die Spaltennummer des aktiven Bereichs abzurufen.
Rückgabewert
Zeigen Sie auf den aktiven Bereich. NULL wenn kein aktiver Bereich vorhanden ist.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um den aktiven Bereich in einem Teilerfenster zu bestimmen. Überschreiben, um eine Aktion durch den Benutzer zu erfordern, bevor der aktive Bereich angezeigt wird.
CSplitterWnd::GetColumnCount
Gibt die Anzahl der aktuellen Bereichsspalten zurück.
int GetColumnCount() const;
Rückgabewert
Gibt die aktuelle Anzahl von Spalten im Teiler zurück. Bei einem statischen Teiler ist dies auch die maximale Anzahl von Spalten.
CSplitterWnd::GetColumnInfo
Gibt Informationen zur angegebenen Spalte zurück.
void GetColumnInfo(
int col,
int& cxCur,
int& cxMin) const;
Parameter
col
Gibt eine Spalte an.
cxCur
Ein Verweis auf einen int , der auf die aktuelle Breite der Spalte festgelegt werden soll.
cxMin
Ein Verweis auf einen int , der auf die aktuelle Mindestbreite der Spalte festgelegt werden soll.
CSplitterWnd::GetPane
Gibt den Bereich an der angegebenen Zeile und Spalte zurück.
CWnd* GetPane(
int row,
int col) const;
Parameter
row
Gibt eine Zeile an.
col
Gibt eine Spalte an.
Rückgabewert
Gibt den Bereich an der angegebenen Zeile und Spalte zurück. Der zurückgegebene Bereich ist in der Regel eine CViewabgeleitete Klasse.
CSplitterWnd::GetRowCount
Gibt die Anzahl der aktuellen Bereichszeilen zurück.
int GetRowCount() const;
Rückgabewert
Gibt die aktuelle Anzahl von Zeilen im Teilerfenster zurück. Bei einem statischen Teilerfenster ist dies auch die maximale Anzahl von Zeilen.
CSplitterWnd::GetRowInfo
Gibt Informationen zu der angegebenen Zeile zurück.
void GetRowInfo(
int row,
int& cyCur,
int& cyMin) const;
Parameter
row
Gibt eine Zeile an.
cyCur
Bezug, int der auf die aktuelle Höhe der Zeile in Pixel festgelegt werden soll.
cyMin
Bezug, int der auf die aktuelle Mindesthöhe der Zeile in Pixel festgelegt werden soll.
Hinweise
Rufen Sie diese Memberfunktion auf, um Informationen zur angegebenen Zeile abzurufen. Der cyCur Parameter wird mit der aktuellen Höhe der angegebenen Zeile gefüllt und cyMin mit der Mindesthöhe der Zeile gefüllt.
CSplitterWnd::GetScrollStyle
Gibt die Formatvorlage für die freigegebene Bildlaufleiste für das Teilerfenster zurück.
DWORD GetScrollStyle() const;
Rückgabewert
Mindestens eine der folgenden Fensterstilkennzeichnungen, falls erfolgreich:
WS_HSCROLLWenn der Teiler derzeit freigegebene horizontale Bildlaufleisten verwaltet.WS_VSCROLLWenn der Teiler zurzeit freigegebene vertikale Bildlaufleisten verwaltet.
Wenn null, verwaltet das Teilerfenster derzeit keine freigegebenen Bildlaufleisten.
CSplitterWnd::IdFromRowCol
Ruft die untergeordnete Fenster-ID für den Bereich in der angegebenen Zeile und Spalte ab.
int IdFromRowCol(
int row,
int col) const;
Parameter
row
Gibt die Zeile für das Teilerfenster an.
col
Gibt die Spalte für das Teilerfenster an.
Rückgabewert
Die untergeordnete Fenster-ID für den Bereich.
Hinweise
Diese Memberfunktion wird zum Erstellen von Nichtansichten als Bereiche verwendet und kann aufgerufen werden, bevor der Bereich vorhanden ist.
Beispiel
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
Bestimmt, ob pWnd es sich derzeit um einen untergeordneten Bereich dieses Teilerfensters handelt.
BOOL IsChildPane(
CWnd* pWnd,
int* pRow,
int* pCol);
Parameter
pWnd
Ein Zeiger auf ein CWnd zu testende Objekt.
pRow
Ein Zeiger auf eine int Zeile, in der zeilennummer gespeichert werden soll.
pCol
Ein Zeiger auf einen int , in dem eine Spaltennummer gespeichert werden soll.
Rückgabewert
Ist nonzero pWnd derzeit ein untergeordneter Bereich dieses Teilerfensters und pRow pCol wird mit der Position des Bereichs im Teilerfenster ausgefüllt. Wenn pWnd es sich nicht um einen untergeordneten Bereich dieses Teilerfensters handelt, wird 0 zurückgegeben.
Hinweise
In Visual C++-Versionen vor 6.0 wurde diese Funktion definiert als
BOOL IsChildPane(CWnd* pWnd, int& row, int& col);
Diese Version ist jetzt veraltet und sollte nicht verwendet werden.
CSplitterWnd::IsTracking
Rufen Sie diese Memberfunktion auf, um zu ermitteln, ob die Teilerleiste im Fenster zurzeit verschoben wird.
BOOL IsTracking();
Rückgabewert
Nonzero, wenn ein Splittervorgang ausgeführt wird; andernfalls 0.
CSplitterWnd::OnDrawSplitter
Rendert ein Bild eines geteilten Fensters.
virtual void OnDrawSplitter(
CDC* pDC,
ESplitType nType,
const CRect& rect);
Parameter
pDC
Ein Zeiger auf den Gerätekontext, in dem gezeichnet werden soll. Wenn pDC ja NULL, wird das CWnd::RedrawWindow Framework aufgerufen, und es wird kein geteiltes Fenster gezeichnet.
nType
Ein Wert des enum ESplitType, der eine der folgenden Sein kann:
splitBoxDas Teilerziehfeld.splitBarDie Leiste, die zwischen den beiden geteilten Fenstern angezeigt wird.splitIntersectionDie Schnittmenge der geteilten Fenster. Dieses Element wird nicht aufgerufen, wenn es unter Windows 95/98 ausgeführt wird.splitBorderDie Rahmen des geteilten Fensters.
rect
Ein Verweis auf ein CRect Objekt, das die Größe und Form der geteilten Fenster angibt.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um die genauen Merkmale eines Teilerfensters zu zeichnen und anzugeben. Überschreiben OnDrawSplitter Sie die erweiterte Anpassung der Bilder für die verschiedenen grafischen Komponenten eines Splitterfensters. Die Standardimages ähneln dem Splitter in Microsoft Works für Windows oder Microsoft Windows 95/98, da die Schnittmengen der Teilerleisten miteinander kombiniert werden.
Weitere Informationen zu dynamischen Teilerfenstern finden Sie unter "Splitter Windows" im Artikel "Multiple Document Types, Views, and Frame Windows, Technical Note 29, and the CSplitterWnd class overview".
CSplitterWnd::OnInvertTracker
Rendert das Bild eines geteilten Fensters so, dass es die gleiche Größe und Form wie das Rahmenfenster aufweist.
virtual void OnInvertTracker(const CRect& rect);
Parameter
rect
Verweis auf ein CRect Objekt, das das Nachverfolgungsrechteck angibt.
Hinweise
Diese Memberfunktion wird beim Ändern der Größe von Splittern vom Framework aufgerufen. Überschreiben OnInvertTracker Sie die erweiterte Anpassung des Bilds des Splitterfensters. Die Standardimages ähneln dem Splitter in Microsoft Works für Windows oder Microsoft Windows 95/98, da die Schnittmengen der Teilerleisten miteinander kombiniert werden.
Weitere Informationen zu dynamischen Teilerfenstern finden Sie unter "Splitter Windows" im Artikel "Multiple Document Types, Views, and Frame Windows, Technical Note 29, and the CSplitterWnd class overview".
CSplitterWnd::RecalcLayout
Rufen Sie auf, um das Teilerfenster nach dem Anpassen der Zeilen- oder Spaltengröße erneut anzuzeigen.
virtual void RecalcLayout();
Hinweise
Rufen Sie diese Memberfunktion auf, um das Teilerfenster ordnungsgemäß erneut anzuzeigen, nachdem Sie Zeilen- und Spaltengrößen mit den SetRowInfo Funktionen und SetColumnInfo Memberfunktionen angepasst haben. Wenn Sie die Zeilen- und Spaltengrößen im Rahmen des Erstellungsprozesses ändern, bevor das Teilerfenster sichtbar ist, ist es nicht erforderlich, diese Memberfunktion aufzurufen.
Das Framework ruft diese Memberfunktion auf, wenn der Benutzer die Größe des Splitterfensters ändert oder eine Unterbrechung verschiebt.
Beispiel
Ein Beispiel hierfür finden Sie unter CSplitterWnd::SetColumnInfo.
CSplitterWnd::SetActivePane
Legt einen Bereich auf den aktiven Bereich im Frame fest.
virtual void SetActivePane(
int row,
int col,
CWnd* pWnd = NULL);
Parameter
row
Wenn pWnd dies der Wert ist NULL, gibt die Zeile im Bereich an, die aktiv ist.
col
Wenn pWnd dies der Wert ist NULL, gibt die Spalte im Bereich an, der aktiv ist.
pWnd
Ein Zeiger auf ein CWnd-Objekt. Wenn NULL, der bereich, der durch row und col festgelegt wird aktiv ist. Wenn nicht NULL, gibt den Bereich an, der aktiv festgelegt ist.
Hinweise
Diese Memberfunktion wird vom Framework aufgerufen, um einen Bereich als aktiv festzulegen, wenn der Benutzer den Fokus in einen Bereich im Rahmenfenster ändert. Sie können explizit aufrufen SetActivePane , um den Fokus in die angegebene Ansicht zu ändern.
Geben Sie den Bereich an, indem Sie entweder Zeile und Spalte angeben oder angeben pWnd.
CSplitterWnd::SetColumnInfo
Aufrufen, um die angegebenen Spalteninformationen festzulegen.
void SetColumnInfo(
int col,
int cxIdeal,
int cxMin);
Parameter
col
Gibt eine Splitterfensterspalte an.
cxIdeal
Gibt eine ideale Breite für die Spalte des Teilerfensters in Pixeln an.
cxMin
Gibt eine Mindestbreite für die Spalte des Splitterfensters in Pixeln an.
Hinweise
Rufen Sie diese Memberfunktion auf, um eine neue Mindestbreite und ideale Breite für eine Spalte festzulegen. Der Mindestwert der Spalte bestimmt, wann die Spalte zu klein ist, um vollständig angezeigt zu werden.
Wenn das Framework das Teilerfenster anzeigt, werden die Bereiche in Spalten und Zeilen entsprechend ihren idealen Abmessungen angeordnet, die von der oberen linken bis zur unteren rechten Ecke des Clientbereichs des Splitterfensters funktionieren.
Beispiel
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
Aufrufen, um die angegebenen Zeileninformationen festzulegen.
void SetRowInfo(
int row,
int cyIdeal,
int cyMin);
Parameter
row
Gibt eine Teilerfensterzeile an.
cyIdeal
Gibt eine ideale Höhe für die Teilerfensterzeile in Pixel an.
cyMin
Gibt eine Mindesthöhe für die Teilerfensterzeile in Pixel an.
Hinweise
Rufen Sie diese Memberfunktion auf, um eine neue Mindesthöhe und ideale Höhe für eine Zeile festzulegen. Der Zeilenminimwert bestimmt, wann die Zeile zu klein ist, um vollständig angezeigt zu werden.
Wenn das Framework das Teilerfenster anzeigt, werden die Bereiche in Spalten und Zeilen entsprechend ihren idealen Abmessungen angeordnet, die von der oberen linken bis zur unteren rechten Ecke des Clientbereichs des Splitterfensters funktionieren.
CSplitterWnd::SetScrollStyle
Gibt die neue Bildlaufformatvorlage für die unterstützung der freigegebenen Bildlaufleiste des Geteilten Fensters an.
void SetScrollStyle(DWORD dwStyle);
Parameter
dwStyle
Die neue Bildlaufformatvorlage für die unterstützung der freigegebenen Bildlaufleiste des Geteilten Fensters, die einer der folgenden Werte sein kann:
WS_HSCROLLErstellen/Anzeigen horizontaler freigegebener BildlaufleistenWS_VSCROLLErstellen/Anzeigen vertikaler freigegebener Bildlaufleisten
Hinweise
Nachdem eine Bildlaufleiste erstellt wurde, wird sie nicht zerstört, auch wenn SetScrollStyle sie ohne diese Formatvorlage aufgerufen wird. Stattdessen werden diese Bildlaufleisten ausgeblendet. Dadurch können die Bildlaufleisten ihren Zustand beibehalten, obwohl sie ausgeblendet sind. Nach dem Aufruf SetScrollStyleist es erforderlich, alle Änderungen in Kraft zu setzen RecalcLayout .
CSplitterWnd::SplitColumn
Gibt an, wo ein Rahmenfenster vertikal geteilt wird.
virtual BOOL SplitColumn(int cxBefore);
Parameter
cxBefore
Die Position in Pixeln, vor der die Teilung erfolgt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Diese Memberfunktion wird aufgerufen, wenn ein vertikales Teilerfenster erstellt wird. SplitColumn gibt den Standardspeicherort an, an dem die Aufteilung erfolgt.
SplitColumn wird vom Framework aufgerufen, um die Logik des dynamischen Splitterfensters zu implementieren (d. r., wenn das Teilerfenster über die SPLS_DYNAMIC_SPLIT Formatvorlage verfügt). Sie kann zusammen mit der virtuellen Funktion CreateViewangepasst werden, um komplexere dynamische Splitter zu implementieren.
CSplitterWnd::SplitRow
Gibt an, wo ein Rahmenfenster horizontal geteilt wird.
virtual BOOL SplitRow(int cyBefore);
Parameter
cyBefore
Die Position in Pixeln, vor der die Teilung erfolgt.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Diese Memberfunktion wird aufgerufen, wenn ein horizontales Teilerfenster erstellt wird. SplitRow gibt den Standardspeicherort an, an dem die Aufteilung erfolgt.
SplitRow wird vom Framework aufgerufen, um die Logik des dynamischen Splitterfensters zu implementieren (d. r., wenn das Teilerfenster über die SPLS_DYNAMIC_SPLIT Formatvorlage verfügt). Sie kann zusammen mit der virtuellen Funktion CreateViewangepasst werden, um komplexere dynamische Splitter zu implementieren.
CSplitterWnd::OnDraw
Wird vom Framework aufgerufen, um das Teilerfenster zu zeichnen.
virtual void OnDraw(CDC* pDC);
Parameter
pDC
Ein Zeiger zu einem Gerätekontext.
Hinweise
Siehe auch
MFC-Beispiel VIEWEX
CWnd Klasse
Hierarchiediagramm
CView Klasse