Visualisierungs-Manager

Der visuelle Manager ist ein Objekt, das die Darstellung einer ganzen Anwendung steuert. Er fungiert als einzelne Klasse, in der Sie den gesamten Zeichnungscode für Ihre Anwendung speichern können. Die MFC-Bibliothek enthält mehrere visuelle Manager. Sie können auch einen eigenen visuellen Manager erstellen, wenn Sie eine benutzerdefinierte Ansicht für Ihre Anwendung erstellen möchten. Die folgenden Abbildungen zeigen dieselbe 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 Benutzeroberflächenelemente bereitzustellen, müssen Sie die zugehörigen Zeichnungsmethoden des visuellen Managers überschreiben. Eine Liste dieser Methoden finden Sie unter CMFCVisualManager-Klasse. Die Methoden, die Sie überschreiben können, um eine benutzerdefinierte Darstellung bereitzustellen, sind alle Methoden, die mit OnDraw beginnen.

Ihre Anwendung kann nur über ein CMFCVisualManager Objekt verfügen. Um einen Zeiger auf den visuellen Manager für Ihre Anwendung abzurufen, rufen Sie die statische Funktion CMFCVisualManager::GetInstanceauf. 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, die von abgeleitet werden soll, ist CMFCVisualManager . Sie können jedoch einen anderen visuellen Manager verwenden, wenn er ihren Wünschen für Ihre Anwendung besser entspricht. Wenn Sie z. B. den visuellen Manager verwenden CMFCVisualManagerOffice2007 möchten, aber nur ändern möchten, wie Trennzeichen aussehen, können Sie Ihre benutzerdefinierte Klasse von CMFCVisualManagerOffice2007 ableiten. In diesem Szenario sollten Sie nur die Methoden zum Zeichnen von Trennzeichen ü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 visuellen Manager mit dieser Methode verwenden CMFCVisualManagerVS2005 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 es jedoch nur ein Objekt pro Anwendung geben CMFCVisualManager kann, müssen Sie den aktuellen Visual-Manager löschen, bevor Sie ein neues erstellen. Im folgenden Beispiel CMyVisualManager ist ein benutzerdefinierter visueller Manager, der von abgeleitet CMFCVisualManager ist. Mit der folgenden Methode wird abhängig von einem Index geändert, welcher visuelle Manager zum Anzeigen Ihrer Anwendung verwendet wird:

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äche-Elemente
CMFCVisualManager-Klasse