Sdílet prostřednictvím


Správce vizualizace

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 as rendered by CMFCVisualManagerWindows.
MyApp, která používá správce vizuálu CMFCVisualManagerWindows

MyApp as rendered by CMFCVisualManagerVS2005.
MyApp, která používá správce vizuálů CMFCVisualManagerVS2005

MyApp as rendered by CMFCVisualManagerOfficeXP.
MyApp, který používá správce vizuálu CMFCVisualManagerOfficeXP

MyApp as rendered by CMFCVisualManagerOffice2003.
MyApp, který používá správce vizuálů CMFCVisualManagerOffice2003

MyApp as rendered by CMFCVisualManagerOffice2007.
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 scénáři byste měli přepsat pouze metody pro oddělovače výkresu.

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 volat CMFCVisualManager::SetDefaultManager metoda a předat příslušného vizuálního manažera jako parametr. 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();
}

Viz také

Prvky uživatelského rozhraní
CMFCVisualManager – třída