Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Správce vizuálů je objekt, který řídí vzhled celé aplikace. Funguje jako jedna třída, kde můžete vložit veškerý kód výkresu pro vaši aplikaci. Knihovna MFC obsahuje několik vizuálních manažerů. Pokud chcete vytvořit vlastní zobrazení pro vaši aplikaci, můžete také vytvořit vlastního správce vizuálů. Následující obrázky ukazují stejnou aplikaci, když jsou povoleni různí správci vizuálů:
MyApp, která používá správce vizuálu CMFCVisualManagerWindows
MyApp, která používá správce vizuálů CMFCVisualManagerVS2005
MyApp, který používá správce vizuálu CMFCVisualManagerOfficeXP
MyApp, který používá správce vizuálů CMFCVisualManagerOffice2003
MyApp, který používá správce vizuálu CMFCVisualManagerOffice2007
Ve výchozím nastavení správce vizuálů udržuje kód výkresu pro několik prvků grafického uživatelského rozhraní. Pokud chcete poskytnout vlastní prvky uživatelského rozhraní, musíte přepsat související metody kreslení správce vizuálů. Seznam těchto metod naleznete v tématu CMFCVisualManager – třída. Metody, které můžete přepsat tak, aby poskytovaly vlastní vzhled, jsou všechny metody, které začínají OnDraw.
Aplikace může mít pouze jeden CMFCVisualManager objekt. Pokud chcete získat ukazatel na správce vizuálů pro vaši aplikaci, zavolejte statickou funkci CMFCVisualManager::GetInstance. Vzhledem k tomu, že všichni správci vizuálů dědí z CMFCVisualManager, CMFCVisualManager::GetInstance metoda získá ukazatel na příslušného správce vizuálů, i když vytvoříte vlastního správce vizuálů.
Pokud chcete vytvořit vlastního správce vizuálů, musíte ho odvodit z správce vizuálů, který již existuje. Výchozí třída, ze které má být odvozena, je CMFCVisualManager. Pokud se ale bude lépe podobat tomu, co chcete pro svou aplikaci, můžete použít jiný správce vizuálů. Například pokud jste chtěli použít správce vizuálů CMFCVisualManagerOffice2007 , ale chtěli změnit pouze vzhled oddělovačů, mohli byste odvodit vlastní třídu z CMFCVisualManagerOffice2007. V tomto případě byste měli přepsat pouze metody pro kreslení oddělovačů.
Existují dva možné způsoby použití konkrétního správce vizuálů pro vaši aplikaci. Jedním ze způsobů je volání metody CMFCVisualManager::SetDefaultManager a předání příslušného vizuálního manažera jako parametru. Následující příklad kódu ukazuje, jak byste použili správce vizuálů CMFCVisualManagerVS2005 s touto metodou:
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));
Dalším způsobem, jak ve své aplikaci použít správce vizuálů, je vytvořit ho ručně. Aplikace pak použije tento nový správce vizuálů pro veškeré vykreslování. Vzhledem k tomu, že pro každou aplikaci může existovat pouze jeden CMFCVisualManager objekt, budete muset před vytvořením nového objektu odstranit aktuálního správce vizuálů. V následujícím příkladu CMyVisualManager je vlastní správce vizuálů odvozený z CMFCVisualManager. Následující metoda změní, jaký správce vizuálů se používá k zobrazení aplikace v závislosti na indexu:
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();
}