視覺化管理員
視覺管理員是一個物件,控制整個應用程式的外觀。它可以當做單一類別您可以為應用程式放置繪圖的程式碼。MFC 程式庫包含了數個視覺管理員。如果您想要建立自訂檢視您的應用程式,您也可以建立您自己的視覺管理員。啟用不同的視覺管理員時,所以下列影像顯示同一個應用程式:
使用 CMFCVisualManagerWindows 的視覺管理員 MyApp
使用 CMFCVisualManagerVS2005 的視覺管理員 MyApp
使用 CMFCVisualManagerOfficeXP 的視覺管理員 MyApp
使用 CMFCVisualManagerOffice2003 的視覺管理員 MyApp
使用 CMFCVisualManagerOffice2007 的視覺管理員 MyApp
根據預設,視覺化管理員會維護 GUI 的幾個元素的繪圖程式碼。若要提供自訂的 UI 項目,您需要覆寫的視覺管理員相關繪圖的方法。這些方法的清單,請參閱CMFCVisualManager 類別。您可以覆寫以提供自訂外觀的方法會以開頭的所有方法OnDraw。
您的應用程式只能有一個CMFCVisualManager物件。若要取得您的應用程式的視覺化管理員的指標,呼叫的靜態函式CMFCVisualManager::GetInstance。因為所有的視覺管理員繼承自CMFCVisualManager、 CMFCVisualManager::GetInstance方法會取得指標至適當的視覺管理員,即使您建立自訂的視覺管理員。
如果您想要建立自訂的視覺管理員,您必須從視覺化的專案經理已經存在於衍生它。是預設的類別衍生自CMFCVisualManager。不過,您可以使用不同的視覺管理員,如果看起來更像您想為您的應用程式。比方說,如果您想要納入CMFCVisualManagerOffice2007視覺管理員] 中,但希望只變更分隔頁的外觀,您可以衍生自訂類別從CMFCVisualManagerOffice2007。在這個案例中,您應該要覆寫方法來繪製分隔符號。
有兩個可能的方法可以使用於您的應用程式的特定視覺管理員。若要呼叫一個方法是CMFCVisualManager::SetDefaultManager方法,並傳遞適當的視覺管理員做為參數。下列程式碼範例會示範如何使用CMFCVisualManagerVS2005視覺管理員,透過這種方法:
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));
若要手動建立是相反才以應用於您的應用程式的視覺管理員。應用程式會將所有呈現用於此新的視覺管理員。不過,因為可以只是下列其中一CMFCVisualManager每個應用程式,您必須刪除目前的視覺化管理員,才能建立一個新物件。在下列範例中, CMyVisualManager是自訂的視覺管理員是衍生自CMFCVisualManager。下列方法將會變更何種視覺化管理員用來顯示您的應用程式,取決於索引:
void CMyApp::SetSkin (int index)
{
if (CMFCVisualManager::GetInstance() != NULL)
{
delete CMFCVisualManager::GetInstance();
}
switch (index)
{
case DEFAULT_STYLE:
// The following statement creates a new CMFCVisualManager
CMFCVisualManager::GetInstance();
break;
case CUSTOM_STYLE:
new CMyVisualManager;
break;
default:
CMFCVisualManager::GetInstance();
break;
}
CMFCVisualManager::GetInstance()->RedrawAll();
}