Gerenciador de visualização
O Gerenciador visual é um objeto que controla a aparência de um aplicativo inteiro.Ele age como uma única classe onde você pode colocar todo o código de desenho para seu aplicativo.A biblioteca MFC inclui vários gerentes visual.Se você deseja criar um modo de exibição personalizado para seu aplicativo, você também pode criar seu próprio Gerenciador de visual.As imagens a seguir mostram o mesmo aplicativo quando diferentes gerentes visual estão habilitados:
MyApp usa o Gerenciador visual CMFCVisualManagerWindows
MyApp usa o Gerenciador visual CMFCVisualManagerVS2005
MyApp usa o Gerenciador visual CMFCVisualManagerOfficeXP
MyApp usa o Gerenciador visual CMFCVisualManagerOffice2003
MyApp usa o Gerenciador visual CMFCVisualManagerOffice2007
Por padrão, o Gerenciador visual mantém o código para vários elementos de interface Gráfica do desenho.Para fornecer elementos UI personalizados, você precisará substituir os métodos de desenho relacionados do gerente visual.Para a lista desses métodos, consulte Classe CMFCVisualManager.Os métodos que você pode substituir para fornecer uma aparência personalizada são os métodos que começam com OnDraw.
Seu aplicativo pode ter apenas um CMFCVisualManager objeto.Para obter um ponteiro para o Gerenciador visual para seu aplicativo, chame a função estática CMFCVisualManager::GetInstance.Como todos os gerentes visual do CMFCVisualManager, o CMFCVisualManager::GetInstance método obter um ponteiro para o gerente visual, mesmo se você criar um Gerenciador visual personalizado.
Se você deseja criar um Gerenciador visual personalizado, deve derivá-lo de um gerente de visual que já existe.É a classe padrão para derivar de CMFCVisualManager.No entanto, você pode usar um gerente visual diferente se ele parece melhor o que você deseja para seu aplicativo.Por exemplo, se você quisesse usar o CMFCVisualManagerOffice2007 Gerenciador visual, mas queria apenas alterar a aparência de separadores, você pode derivar sua classe personalizada de CMFCVisualManagerOffice2007.Nesse cenário, você deve substituir somente os métodos de desenho separadores.
Há duas maneiras de usar um Gerenciador visual específico para seu aplicativo.É uma maneira de chamar o CMFCVisualManager:: método e passar o gerente visual como um parâmetro.O exemplo de código a seguir mostra como você usaria o CMFCVisualManagerVS2005 Gerenciador visual com este método:
CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));
Outra forma de usar um Gerenciador visual em seu aplicativo é criá-lo manualmente.O aplicativo irá usar esse novo gerente visual para todo o processamento.No entanto, como pode haver apenas um CMFCVisualManager objeto por aplicativo, você terá que excluir o gerente atual visual antes de criar um novo.No exemplo a seguir, CMyVisualManager é um Gerenciador visual personalizado que é derivado de CMFCVisualManager.O seguinte método alterará o Gerenciador visual é usado para exibir seu aplicativo, dependendo de um índice:
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();
}