Sdílet prostřednictvím


Správce vizualizací

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 zobrazený pomocí CMFCVisualManagerWindows.
MyApp, která používá správce vizuálu CMFCVisualManagerWindows

Moje aplikace, jak ji vykreslil CMFCVisualManagerVS2005.
MyApp, která používá správce vizuálů CMFCVisualManagerVS2005

MyApp vykreslený pomocí CMFCVisualManagerOfficeXP.
MyApp, který používá správce vizuálu CMFCVisualManagerOfficeXP

MyApp, jak je vykreslená CMFCVisualManagerOffice2003.
MyApp, který používá správce vizuálů CMFCVisualManagerOffice2003

Moje aplikace vykreslená 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 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();
}

Viz také

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