備註
Microsoft 基礎類別(MFC)函式庫持續被支援。 不過,我們不再新增功能或更新文件。
本文件說明 Visual Studio 2008 SP1 中引進的介面元素,也說明與舊版連結庫的差異。
下圖顯示使用新介面專案所建置的應用程式。
視窗對接
視窗停駐功能類似於 Visual Studio 圖形使用者介面所使用的視窗停駐功能。
控制工具列現在是窗格
控制列現在稱為窗格,且衍生自 CBasePane 類別。 在舊版 MFC 中,控制列的基類為 CControlBar。
應用程式主框架視窗通常以 CFrameWndEx 類別 或 CMDIFrameWndEx 類別表示。 主框架稱為 停靠位置。 窗格可以有三種父元件類型之一:停駐站點、停駐工具列或迷你框架視窗。
有兩種類型的視窗:不可調整大小和可調整大小。 可重設大小的窗格,例如狀態列和工具列,可以使用分隔器或滑桿來重設大小。 可重設大小的窗格可以形成容器(可以將一個窗格停駐並固定在另一個窗格上,在兩者之間建立分割器)。 不過,無法將可重設大小的窗格附加至停靠列。
如果您的應用程式使用不可重設大小的窗格,請從 CPane 類別衍生它們。 如果您的應用程式使用可重設大小的窗格,請從 CDockablePane 類別衍生它們
碼頭區域
停駐站點(或主框架視窗)擁有應用程式中的所有窗格和小型框架視窗。 停靠區包含 CDockingManager 成員。 此成員會維護屬於停駐區域的所有窗格清單。 清單依序排列,使得在停靠區域外緣建立的面板位於清單的開始位置。 當框架重新繪製停駐月臺時,它會遍歷此清單,並調整每個窗格的布局,以包括停駐月臺當前的邊界框。 當您必須調整停駐配置時,您可以呼叫 AdjustDockingLayout 或 RecalcLayout,而架構會將此呼叫重新導向至停駐管理員。
碼頭欄
每個主框架視窗都可以在其框線上放置 工具列 。 停駐列是屬於 CDockSite 類別 的一個窗格。 停駐列可以接受衍生自 CPane 的物件,例如工具列。 若要在初始化主框架視窗時建立停駐列,請呼叫 EnableDocking。 若要開啟自動隱藏欄位, 請呼叫 EnableAutoHideBars。
EnableAutoHideBars 會建立 CAutoHideDockSite 物件,並將它們放置在每個 dock bar 旁邊。
每個停駐吧都會分成停駐列。 停駐列是由 CDockingPanesRow 類別表示。 每個停駐列都包含一份工具列清單。 如果使用者停駐工具列,或將工具列從同一個停駐列移到另一個數據列,則架構會建立新的數據列,並據以調整停駐列的大小,或將工具列放置在現有數據列上。
微型框架視窗
浮動窗格位於迷你框架視窗中。 迷你框架視窗是由兩個類別所代表: CMDITabInfo 類別 (只能包含一個窗格)和 CMultiPaneFrameWnd 類別 (可以包含數個窗格)。 若要在程式代碼中浮動窗格,請呼叫 CBasePane::FloatPane。 窗格浮動之後,架構會自動建立迷你框架視窗,而迷你框架視窗會變成浮動窗格的父視窗。 當浮動窗格停駐時,框架會重設其父層,而浮動窗格會變成停駐列(適用於工具欄)或固定區域(適用於可調整大小的窗格)。
窗格分隔符
窗格分隔器(也稱為滑桿或分隔器)是由 CPaneDivider 類別表示。 當使用者停駐窗格時,框架會建立窗格分隔器,而無論窗格是停駐在停駐位置還是另一個窗格。 當窗格停駐到對接站點時,窗格分隔器稱為 預設窗格分隔符。 預設窗格分隔器負責停靠點中所有停駐窗格的布局。 面板管理員會維護預設面板分隔符的清單,以及面板清單。 碼頭管理員負責所有停駐窗格的配置。
容器
所有可調整大小的窗格,在彼此連接時,都會保持在容器中。 容器是由 CPaneContainer 類別表示。 每個容器都有其左窗格、右窗格、左子容器、右子容器,以及左右部分之間的分隔器指標。 (左 方和 右 方不是指實體側邊,而是識別樹狀結構的分支。)如此一來,我們可以建立窗格和分隔器的樹狀層次結構,因此能夠一起調整窗格的複雜佈局。 類別 CPaneContainer 會維護容器的樹狀結構;它也會維護位於此樹狀結構中的兩個窗格和滑桿清單。 窗格容器管理員通常會內嵌至包含多個窗格的預設滑桿和迷你框架視窗。
自動隱藏控制欄
根據預設,每個 CDockablePane 都支援自動隱藏功能。 當使用者按下 CDockablePane 標題上的釘選按鈕時,框架會將窗格切換到自動隱藏模式。 為了處理單擊,架構會建立 CMFCAutoHideBar 類別和與對象相關聯的 CMFCAutoHideBar。 架構會將新的 CMFCAutoHideBar 放在 CAutoHideDockSite 上。 架構也會將 附加 CMFCAutoHideButton 至工具列。
CDockingManager 類別 會維護 CDockablePane。
索引標籤控制列和 Outlook 導覽列
CMFCBaseTabCtrl 類別會實作具有可卸離索引標籤之索引標籤視窗的基底功能。 若要使用 CMFCBaseTabCtrl 物件,請在應用程式中初始化 CBaseTabbedPane 類別 。
CBaseTabbedPane 衍生自 CDockablePane 並維護指向 CMFCBaseTabCtrl 物件的指標。
CBaseTabbedPane可讓使用者停駐和調整索引標籤式控制列的大小。 使用 CDockablePane::AttachToTabWnd 動態建立停駐和選項卡化的控制列。
Outlook 欄控件也以索引標籤列為基礎。
CMFCOutlookBar 類別衍生自 CBaseTabbedPane。 如需如何使用 Outlook 列的詳細資訊,請參閱 CMFCOutlookBar 類別。