Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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:
A CMFCVisualManagerWindows visual managert használó MyApp
A CMFCVisualManagerVS2005 visual managert használó MyApp
A CMFCVisualManagerOfficeXP vizualizációkezelőt használó MyApp
A CMFCVisualManagerOffice2003 visual managert használó MyApp
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();
}