Dela via


Visualiseringshanteraren

Visual Manager är ett objekt som styr utseendet på ett helt program. Den fungerar som en enda klass där du kan placera all ritningskod för ditt program. MFC-biblioteket innehåller flera visuella hanterare. Du kan också skapa en egen visuell chef om du vill skapa en anpassad vy för ditt program. Följande bilder visar samma program när olika visuella chefer är aktiverade:

MyApp som återges av CMFCVisualManagerWindows.
MyApp som använder visual managern CMFCVisualManagerWindows

MyApp som återges av CMFCVisualManagerVS2005.
MyApp som använder visual managern CMFCVisualManagerVS2005

MyApp som återges av CMFCVisualManagerOfficeXP.
MyApp som använder visual managern CMFCVisualManagerOfficeXP

MyApp som återges av CMFCVisualManagerOffice2003.
MyApp som använder visual managern CMFCVisualManagerOffice2003

MyApp som återges av CMFCVisualManagerOffice2007.
MyApp som använder visual managern CMFCVisualManagerOffice2007

Som standard underhåller Visual Manager ritningskoden för flera GUI-element. Om du vill ange anpassade gränssnittselement måste du åsidosätta de relaterade ritningsmetoderna för visual manager. Listan över dessa metoder finns i CMFCVisualManager-klass. De metoder som du kan åsidosätta för att ge ett anpassat utseende är alla metoder som börjar med OnDraw.

Programmet kan bara ha ett CMFCVisualManager objekt. Om du vill hämta en pekare till visual manager för ditt program anropar du den statiska funktionen CMFCVisualManager::GetInstance. Eftersom alla visuella hanterare ärver från CMFCVisualManager, får metoden en pekare till lämplig visuell hanterare, även om du skapar en egen visuell hanterare.

Om du vill skapa en anpassad visualiseringshanterare måste du härleda den från en visual manager som redan finns. Standardklassen som ska härledas från är CMFCVisualManager. Du kan dock använda en annan visual manager om den bättre liknar det du vill ha för ditt program. Om du till exempel vill använda visual CMFCVisualManagerOffice2007 manager, men bara vill ändra hur avgränsare ser ut, kan du härleda din anpassade klass från CMFCVisualManagerOffice2007. I det här scenariot bör du endast skriva över metoderna för att rita avgränsare.

Det finns två möjliga sätt att använda en specifik visual manager för ditt program. Ett sätt är att anropa metoden CMFCVisualManager::SetDefaultManager och skicka lämplig visual manager som en parameter. I följande kodexempel visas hur du använder visual CMFCVisualManagerVS2005 manager med den här metoden:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

Det andra sättet att använda en visual manager i ditt program är att skapa den manuellt. Programmet använder sedan den nya visualiseringshanteraren för all återgivning. Men eftersom det bara kan finnas ett CMFCVisualManager objekt per program måste du ta bort den aktuella visualiseringshanteraren innan du skapar ett nytt. I följande exempel CMyVisualManager är en anpassad visualiseringshanterare som härleds från CMFCVisualManager. Följande metod ändrar vilken visual manager som används för att visa ditt program, beroende på ett index:

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

Se även

Element i användargränssnittet
CMFCVisualManager-klass