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.
Hinweis
Die Microsoft Foundation Classes (MFC)-Bibliothek wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.
Dieses Dokument beschreibt Schnittstellenelemente, die in Visual Studio 2008 SP1 eingeführt wurden, und beschreibt auch Unterschiede mit der früheren Version der Bibliothek.
Die folgende Abbildung zeigt eine Anwendung, die mithilfe der neuen Schnittstellenelemente erstellt wurde.
Fenster andocken
Die Windows-Andockfunktion ähnelt dem Andocken des Fensters, das von der grafischen Benutzeroberfläche von Visual Studio verwendet wird.
Steuerleisten sind jetzt Fenster
Steuerleisten werden jetzt als Fenster bezeichnet und sind von der CBasePane-Klasse abgeleitet. In früheren Versionen von MFC war CControlBar die Basisklasse der Bedienleisten.
Das Hauptrahmenfenster der Anwendung wird in der Regel durch die CFrameWndEx-Klasse oder die CMDIFrameWndEx-Klasse dargestellt. Der Hauptrahmen wird Dock-Site genannt. Fenster können eine von drei Arten von Eltern haben: eine Dock-Site, eine Dock-Bar oder ein Mini-Frame-Fenster.
Es gibt zwei Arten von Fenstern: nicht skalierbar und skalierbar. Größenveränderliche Bereiche, wie Statusleisten und Symbolleisten, können mithilfe von Splittern oder Schiebereglern geändert werden. Größenveränderliche Fenster können Container bilden (ein Fenster kann an ein anderes Fenster angedockt werden, wodurch ein Splitter zwischen ihnen entsteht). Größenveränderliche Fenster können jedoch nicht an Dockleisten angebracht (angedockt) werden.
Wenn Ihre Anwendung nicht verkleinerbare Bereiche verwendet, leiten Sie sie von der CPane-Klasse ab. Wenn Ihre Anwendung veränderbare Bereiche verwendet, leiten Sie sie von der CDockablePane-Klasse ab.
Dockbereich
Die Dock-Site (oder das Hauptrahmenfenster) besitzt alle Fenster und Mini-Frame-Fenster in einer Anwendung. Die Dock-Site enthält ein CDockingManager-Mitglied. Dieses Mitglied verwaltet eine Liste aller Fenster, die zur Dock-Site gehören. Die Liste ist so geordnet, dass die an den Außenkanten des Dockstandorts erstellten Fenster am Anfang der Liste positioniert sind. Wenn das Framework die Dock-Site neu zeichnet, führt es eine Schleife über diese Liste und passt das Layout jedes Bereichs an, um das aktuelle Begrenzungsrechteck der Dock-Site einzubeziehen. Wenn Sie das Docking-Layout ändern müssen, können Sie AdjustDockingLayout oder RecalcLayout aufrufen, und das Framework leitet diesen Aufruf an den Docking-Manager um.
Dockbars
Jedes Hauptrahmenfenster kann Dockleisten entlang seiner Ränder positionieren. Eine Dockbar ist ein Bereich, der zu einer CDockSite-Klasse gehört. Dockleisten können Objekte akzeptieren, die von CPane abgeleitet sind, z. B. Symbolleisten. Rufen Sie auf EnableDocking, um Dockleisten zu erstellen, wenn das Hauptframefenster initialisiert wird. Um das automatische Ausblenden der Leisten zu aktivieren, rufen Sie EnableAutoHideBars auf.
EnableAutoHideBars erstellt CAutoHideDockSite-Objekte und positioniert sie neben jeder Dockleiste.
Jede Dockleiste ist in Dockreihen unterteilt. Dockzeilen werden durch die Klasse CDockingPanesRow dargestellt. Jede Dockzeile enthält eine Liste von Symbolleisten. Wenn ein Benutzer eine Symbolleiste andockt oder die Symbolleiste von einer Zeile in eine andere innerhalb derselben Dockleiste verschiebt, erstellt das Framework entweder eine neue Zeile und ändert die Größe der Dockleiste entsprechend, oder sie positioniert die Symbolleiste auf einer vorhandenen Zeile.
Mini-Frame-Fenster
Ein schwebendes Fenster befindet sich in einem Miniframefenster. Miniframefenster werden durch zwei Klassen dargestellt: CMDITabInfo-Klasse (die nur einen Bereich enthalten kann) und CMultiPaneFrameWnd-Klasse (die mehrere Bereiche enthalten kann). Rufen Sie CBasePane::FloatPane auf, um ein Fenster in Ihrem Code freischwebend anzuordnen. Nachdem ein Fenster schwebt, erstellt das Framework automatisch ein Mini-Frame-Fenster, und dieses Mini-Frame-Fenster wird zum übergeordneten Fenster des schwebenden Fensters. Wenn der schwebende Bereich andockt, setzt das Framework sein übergeordnetes Element zurück und der schwebende Bereich wird zu einer Dockleiste (für Symbolleisten) oder einer Dockwebsite (für skalierbare Bereiche).
Bereichstrenner
Bereichsteiler (auch benannte Schieberegler oder Splitter) werden durch die CPaneDivider-Klasse dargestellt. Wenn ein Benutzer einen Bereich andockt, erstellt das Framework Bereichsteiler, unabhängig davon, ob der Bereich an der Andockstelle oder an einem anderen Bereich angedockt ist. Wenn ein Bereich an die Dock-Site andockt, wird der Bereichsteiler als Standardbereichsteiler bezeichnet. Der Standard-Fensterteiler ist für das Layout aller Docking-Fenster auf der Dock-Site verantwortlich. Der Dock-Manager verwaltet eine Liste der Standardbereichsteiler und eine Liste der Bereiche. Dock-Manager sind für das Layout aller Docking-Fenster verantwortlich.
Behälter
Alle skalierbaren Fenster werden, wenn sie aneinander angedockt sind, in Containern aufbewahrt. Container werden durch die CPaneContainer-Klasse dargestellt. Jeder Container hat Zeiger auf seinen linken Bereich, rechten Bereich, linken Subcontainer, rechten Subcontainer und den Splitter zwischen dem linken und rechten Teil. (Links und rechts beziehen sich nicht auf physische Seiten, sondern identifizieren die Äste einer Baumstruktur.) Auf diese Weise können wir einen Baum von Scheiben und Splittern bauen und somit komplexe Layouts von Scheiben erreichen, die zusammen skaliert werden können. Die CPaneContainer Klasse verwaltet den Baum von Containern; sie verwaltet auch zwei Listen von Bereichen und Schiebereglern, die sich in diesem Baum befinden. Fenster-Container-Manager sind in der Regel in Standardschieberegler und Mini-Frame-Fenster eingebettet, die mehrere Fenster enthalten.
Steuerleisten automatisch ausblenden
Standardmäßig unterstützt jedes CDockablePane das automatische Ausblenden. Wenn ein Benutzer auf die Schaltfläche PIN auf der Beschriftung des klicktCDockablePane, schaltet das Framework den Bereich in den automatischen Ausblendmodus. Um den Klick zu verarbeiten, erstellt das Framework eine CMFCAutoHideBar-Klasse und eine CMFCAutoHideButton-Klasse , die dem CMFCAutoHideBar Objekt zugeordnet ist. Das Framework platziert das neue CMFCAutoHideBar auf der CAutoHideDockSite. Das Framework fügt das CMFCAutoHideButton auch an die Symbolleiste an. Die CDockingManager-Klasse verwaltet die CDockablePane.
Kontrollleisten und Outlook-Leisten mit Registerkarten
Die CMFCBaseTabCtrl-Klasse implementiert die Basisfunktionalität eines Registerkartenfensters mit trennbaren Registerkarten. Um ein CMFCBaseTabCtrl Objekt zu verwenden, initialisieren Sie eine CBaseTabbedPane-Klasse in Ihrer Anwendung.
CBaseTabbedPane wird von einem CDockablePane abgeleitet und pflegt einen Zeiger auf ein CMFCBaseTabCtrl-Objekt.
CBaseTabbedPane Mit können Benutzer Steuerleisten mit Registerkarten andocken und deren Größe ändern. Verwenden Sie CDockablePane::AttachToTabWnd, um dynamisch Steuerleisten zu erstellen, die angedockt und mit Registerkarten versehen sind.
Das Outlook-Leisten-Steuerelement basiert ebenfalls auf Registerkartenleisten. Die CMFCOutlookBar-Klasse wird von CBaseTabbedPane abgeleitet. Weitere Informationen zur Verwendung der Outlook-Leiste finden Sie unter CMFCOutlookBar Class.