Visualisierungs-Manager
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 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 Bilder zeigen die gleiche Anwendung, wenn verschiedene visuelle Manager aktiviert sind:
MyApp, die den visuellen Manager cmFCVisualManagerWindows verwendet
MyApp, die den visuellen Manager CMFCVisualManagerVS2005 verwendet
MyApp, die den visuellen Manager CMFCVisualManagerOfficeXP verwendet
MyApp, die den visuellen Manager CMFCVisualManagerOffice2003 verwendet
MyApp, die den visuellen Manager CMFCVisualManagerOffice2007 verwendet
Standardmäßig enthält der visuelle Manager den Zeichnungscode für mehrere GUI-Elemente Standard. 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 außer Kraft setzen können, um eine benutzerdefinierte Darstellung bereitzustellen, sind alle Methoden, mit denen Sie beginnen OnDraw
.
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 erben CMFCVisualManager
, 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 ändern möchten, wie Trennzeichen aussehen, könnten Sie Ihre benutzerdefinierte Klasse von CMFCVisualManagerOffice2007
. In diesem Szenario sollten Sie nur die Methoden für Zeichnungstrennzeichen ü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 ein benutzerdefinierter visueller Manager, CMyVisualManager
der von CMFCVisualManager
. Die folgende Methode ändert abhängig von einem Index, welcher visuelle Manager verwendet wird, um Ihre Anwendung anzuzeigen:
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();
}