Menedżer wizualizacji
Menedżer visual jest obiekt, który steruje wyglądem całej aplikacji.Działa jako jedną klasę, gdzie można umieścić rysunku kod aplikacji.Biblioteki MFC obejmuje kilka visual menedżerów.Jeśli chcesz utworzyć widok niestandardowy dla aplikacji, można również utworzyć wizualne menedżera.Następujące obrazy pokazują tej samej aplikacji po włączeniu różnych menedżerów wizualne:
MyApp, który używa Menedżera visual CMFCVisualManagerWindows
MyApp, który używa Menedżera visual CMFCVisualManagerVS2005
MyApp, który używa Menedżera visual CMFCVisualManagerOfficeXP
MyApp, który używa Menedżera visual CMFCVisualManagerOffice2003
MyApp, który używa Menedżera visual CMFCVisualManagerOffice2007
Domyślnie Menedżer visual utrzymuje rysunku kod dla kilku elementów GUI.Aby udostępnić niestandardowe elementy interfejsu użytkownika, należy zastąpić odpowiednich metod rysunkowego visual menedżera.Aby uzyskać listę tych metod, zobacz Klasa CMFCVisualManager.Metody, które można zastąpić niestandardowy wygląd są metody, które zaczynają się OnDraw.
Aplikacja może mieć tylko jeden CMFCVisualManager obiektu.Uzyskanie wskaźnika do wizualnego Menedżera aplikacji, należy wywołać funkcję statyczne CMFCVisualManager::GetInstance.Ponieważ dziedziczą wszystkich menedżerów visual CMFCVisualManager, CMFCVisualManager::GetInstance metoda będzie uzyskać wskaźnika właściwe Menedżera wizualne, nawet jeśli utworzyć niestandardowy Menedżer visual.
Jeśli chcesz utworzyć niestandardowy Menedżer visual musi on pochodzić od visual menedżera, który już istnieje.Jest domyślna klasa z CMFCVisualManager.Jednak można użyć innego menedżera visual, jeśli lepiej przypomina ma aplikacji.Na przykład, jeśli chce się używać CMFCVisualManagerOffice2007 visual menedżera, ale chciał tylko zmienić wygląd separatory, może wynikać z niestandardowej klasy CMFCVisualManagerOffice2007.W tym scenariuszu należy zastąpić tylko metody służące do rysowania separatory.
Istnieją dwa możliwe sposoby używania menedżerem określonych aplikacji.Jednym ze sposobów jest wywołanie CMFCVisualManager::SetDefaultManager metody i przebiegu odpowiednich Menedżera visual jako parametr.Poniższy przykład kodu pokazuje, jak będzie używać CMFCVisualManagerVS2005 visual manager z tej metody:
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));
Innym sposobem użycia Menedżera visual w aplikacji jest ręcznie utworzyć.Aplikacja użyje tego nowego Menedżera visual dla wszystkich renderowania.Jednakże ponieważ może istnieć tylko jeden CMFCVisualManager obiektów w każdej aplikacji, trzeba będzie usunąć zarządca bieżącego przed utworzeniem nowej.W poniższym przykładzie CMyVisualManager jest niestandardowy Menedżer visual pochodzącej z CMFCVisualManager.Następujące metody zmiany, jakie visual manager jest używany do wyświetlania aplikacji, w zależności od indeksu:
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();
}