Freigeben über


Visualisierungs-Manager

Hinweis

Die Microsoft Foundation Classes (MFC)-Bibliothek wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.

Der visuelle Manager ist ein Objekt, das die Darstellung einer gesamten Anwendung steuert. Sie fungiert als eine einzelne Klasse, in der Sie den gesamten Zeichnungscode für Ihre Anwendung einfügen können. Die MFC-Bibliothek enthält mehrere Visualisierer. Sie können auch einen eigenen visuellen Manager erstellen, wenn Sie eine benutzerdefinierte Ansicht für Ihre Anwendung erstellen möchten. Die folgenden Bilder zeigen die gleiche Anwendung, wenn verschiedene visuelle Manager aktiviert sind:

MyApp wie von CMFCVisualManagerWindows gerendert.
MyApp, die den visuellen Manager cmFCVisualManagerWindows verwendet

MyApp wie von CMFCVisualManagerVS2005 gerendert.
MyApp, die den visuellen Manager CMFCVisualManagerVS2005 verwendet

MyApp wie von CMFCVisualManagerOfficeXP gerendert.
MyApp, die den visuellen Manager CMFCVisualManagerOfficeXP verwendet

MyApp wie von CMFCVisualManagerOffice2003 gerendert.
MyApp, die den visuellen Manager CMFCVisualManagerOffice2003 verwendet

MyApp wie von CMFCVisualManagerOffice2007 gerendert.
MyApp, die den visuellen Manager CMFCVisualManagerOffice2007 verwendet

Standardmäßig verwaltet der visuelle Manager den Zeichnungscode für mehrere GUI-Elemente. Um benutzerdefinierte UI-Elemente bereitzustellen, müssen Sie die zugehörigen Zeichenmethoden des visuellen Managers überschreiben. Eine Liste dieser Methoden finden Sie unter CMFCVisualManager Class. Die Methoden, die Sie überschreiben können, um eine benutzerdefinierte Darstellung bereitzustellen, sind alle Methoden, die mit OnDraw beginnen.

Ihre Anwendung kann nur ein CMFCVisualManager Objekt haben. Rufen Sie zum Abrufen eines Zeigers auf den visuellen Manager für Ihre Anwendung die statische Funktion CMFCVisualManager::GetInstance auf. Da alle visuellen Manager von CMFCVisualManager erben, erhält die CMFCVisualManager::GetInstance-Methode einen Zeiger auf den entsprechenden visuellen Manager, auch wenn Sie einen benutzerdefinierten visuellen Manager erstellen.

Wenn Sie einen benutzerdefinierten visuellen Manager erstellen möchten, müssen Sie ihn von einem bereits vorhandenen visuellen Manager ableiten. Die Standardklasse, von der abgeleitet werden soll, ist CMFCVisualManager. Sie können jedoch einen anderen visuellen Manager verwenden, wenn es besser dem entspricht, was Sie für Ihre Anwendung wünschen. Wenn Sie z. B. den CMFCVisualManagerOffice2007 visuellen Manager verwenden möchten, aber nur das Aussehen der Trennzeichen ändern möchten, könnten Sie Ihre benutzerdefinierte Klasse von CMFCVisualManagerOffice2007 ableiten. In diesem Szenario sollten Sie nur die Methoden zum Darstellen von Trennlinien überschreiben.

Es gibt zwei möglichkeiten, einen bestimmten visuellen Manager für Ihre Anwendung zu verwenden. Eine Möglichkeit besteht darin, die CMFCVisualManager::SetDefaultManager-Methode aufzurufen und den entsprechenden visuellen Manager als Parameter zu übergeben. Das folgende Codebeispiel zeigt, wie Sie den CMFCVisualManagerVS2005 visuellen Manager mit dieser Methode verwenden würden:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

Die andere Möglichkeit, einen visuellen Manager in Ihrer Anwendung zu verwenden, besteht darin, ihn manuell zu erstellen. Die Anwendung verwendet dann diesen neuen visuellen Manager für das gesamte Rendering. Da jedoch nur ein CMFCVisualManager Objekt pro Anwendung vorhanden sein kann, müssen Sie den aktuellen visuellen Manager löschen, bevor Sie eine neue erstellen. Im folgenden Beispiel ist CMyVisualManager ein benutzerdefinierter visueller Manager, der von CMFCVisualManager abgeleitet ist. Die folgende Methode ändert, welcher visuelle Manager genutzt wird, um Ihre Anwendung anzuzeigen, abhängig von einem 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();
}

Siehe auch

Benutzeroberflächenelemente
CMFCVisualManager-Klasse