Megosztás:


Vizualizációkezelő

A vizualizációkezelő egy olyan objektum, amely egy teljes alkalmazás megjelenését vezérli. Egyetlen osztályként működik, ahol az alkalmazás összes rajzkódját elhelyezheti. Az MFC-kódtár számos vizualizációkezelőt tartalmaz. Saját vizualizációkezelőt is létrehozhat, ha egyéni nézetet szeretne létrehozni az alkalmazáshoz. A következő képek ugyanazt az alkalmazást jelenítik meg, amikor a különböző vizualizációkezelők engedélyezve vannak:

MyApp a CMFCVisualManagerWindows által renderelt módon.
A CMFCVisualManagerWindows visual managert használó MyApp

MyApp a CMFCVisualManagerVS2005 által renderelt módon.
A CMFCVisualManagerVS2005 visual managert használó MyApp

MyApp a CMFCVisualManagerOfficeXP által renderelt módon.
A CMFCVisualManagerOfficeXP vizualizációkezelőt használó MyApp

MyApp a CMFCVisualManagerOffice2003 által renderelt módon.
A CMFCVisualManagerOffice2003 visual managert használó MyApp

MyApp a CMFCVisualManagerOffice2007 által renderelt módon.
A CMFCVisualManagerOffice2007 visual managert használó MyApp

Alapértelmezés szerint a vizualizációkezelő több grafikus felhasználói felületi elem rajzkódját is fenntartja. Egyéni felhasználói felületi elemek biztosításához felül kell bírálnia a vizuális kezelő kapcsolódó rajzolási metódusait. A metódusok listáját a CMFCVisualManager osztályban találja. Az egyéni megjelenés biztosításához felülbírálható metódusok az összes metódus, amely OnDraw-vel kezdődik.

Az alkalmazás csak egy CMFCVisualManager objektummal rendelkezhet. Ha az alkalmazás vizualizációkezelőjéhez szeretne mutatót szerezni, hívja meg a CMFCVisualManager statikus függvényt::GetInstance. Mivel az összes vizualizációkezelő a CMFCVisualManager-től örököl, a CMFCVisualManager::GetInstance metódus kap majd egy mutatót a megfelelő vizualizációkezelőhöz, akkor is, ha egyéni vizualizációkezelőt hoz létre.

Ha egyéni vizualizációkezelőt szeretne létrehozni, azt egy már létező vizualizációkezelőből kell származtatnia. Az alapértelmezett osztály, amiből bővíteni lehet, a(z) CMFCVisualManager. Használhat azonban egy másik vizualizációkezelőt, ha az jobban hasonlít az alkalmazáshoz kívánthoz. Ha például a CMFCVisualManagerOffice2007 vizualizációkezelőt szeretné használni, de csak az elválasztó elemek megjelenését szeretné módosítani, akkor az egyéni osztályt CMFCVisualManagerOffice2007innen származtathatja. Ebben a forgatókönyvben csak az elválasztóvonalak rajzolásához tartozó metódusokat kell felülírnia.

Az alkalmazáshoz kétféleképpen használhat egy adott vizualizációkezelőt. Ennek egyik módja a CMFCVisualManager::SetDefaultManager metódus meghívása és a megfelelő vizualizációkezelő paraméterként való átadása. Az alábbi példakód bemutatja, hogyan használhatja a vizualizációkezelőt ezzel a CMFCVisualManagerVS2005 módszerrel:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

A másik lehetőség, ha manuálisan hozza létre a vizualizációkezelőt az alkalmazásban. Az alkalmazás ezután ezt az új vizualizációkezelőt fogja használni az összes rendereléshez. Mivel azonban alkalmazásonként csak egy CMFCVisualManager objektum lehet, az új objektum létrehozása előtt törölnie kell az aktuális vizualizációkezelőt. Az alábbi példában egy egyéni vizualizációkezelőt mutatunk be, CMyVisualManager amely a következőből CMFCVisualManagerszármazik: Az alábbi módszer egy indextől függően módosítja az alkalmazás megjelenítéséhez használt Visual Managert:

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();
}

Lásd még

Felhasználói felület elemei
CMFCVisualManager osztály