Partilhar via


Gestor de Visualização

O gerenciador visual é um objeto que controla a aparência de um aplicativo inteiro. Ele atua como uma única classe onde você pode colocar todo o código de desenho para o seu aplicativo. A Biblioteca MFC inclui vários gerenciadores visuais. Você também pode criar seu próprio gerenciador visual se quiser criar uma exibição personalizada para seu aplicativo. As imagens a seguir mostram o mesmo aplicativo quando diferentes gerenciadores visuais estão habilitados:

MyApp como renderizado por CMFCVisualManagerWindows.
MyApp que usa o gerenciador visual CMFCVisualManagerWindows

MyApp conforme processado por CMFCVisualManagerVS2005.
MyApp que usa o gerenciador visual CMFCVisualManagerVS2005

MyApp como processado por CMFCVisualManagerOfficeXP.
MyApp que usa o gerenciador visual CMFCVisualManagerOfficeXP

MyApp conforme processado pelo CMFCVisualManagerOffice2003.
MyApp que usa o gerenciador visual CMFCVisualManagerOffice2003

MyApp conforme processado por CMFCVisualManagerOffice2007.
MyApp que usa o gerenciador visual CMFCVisualManagerOffice2007

Por padrão, o gerenciador visual mantém o código de desenho para vários elementos da GUI. Para fornecer elementos personalizados da interface do usuário, você precisa substituir os métodos de desenho relacionados do gerenciador visual. Para obter a lista desses métodos, consulte Classe CMFCVisualManager. Os métodos que você pode substituir para fornecer uma aparência personalizada são todos 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 gerenciadores visuais herdam do CMFCVisualManager, o CMFCVisualManager::GetInstance método obterá um ponteiro para o gerenciador visual apropriado, mesmo se você criar um gerenciador visual personalizado.

Se você quiser criar um gerenciador visual personalizado, você deve derivá-lo de um gerenciador visual que já existe. A classe padrão a ser derivada é CMFCVisualManager. No entanto, você pode usar um gerenciador visual diferente se ele se assemelhar melhor ao que você deseja para seu aplicativo. Por exemplo, se você quisesse usar o CMFCVisualManagerOffice2007 gerenciador visual, mas quisesse apenas alterar a aparência dos separadores, poderia derivar sua classe personalizada de CMFCVisualManagerOffice2007. Nesse cenário, você deve substituir apenas os métodos para desenhar separadores.

Há duas maneiras possíveis de usar um gerenciador visual específico para seu aplicativo. Uma maneira é chamar o método CMFCVisualManager::SetDefaultManager e passar o gerenciador visual apropriado como um parâmetro. O exemplo de código a seguir mostra como você usaria o CMFCVisualManagerVS2005 gerenciador visual com esse método:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

A outra maneira de usar um gerenciador visual em seu aplicativo é criá-lo manualmente. O aplicativo usará esse novo gerenciador visual para toda a renderização. No entanto, como pode haver apenas um CMFCVisualManager objeto por aplicativo, você terá que excluir o gerenciador visual atual antes de criar um novo. No exemplo a seguir, CMyVisualManager é um gerenciador visual personalizado que é derivado de CMFCVisualManager. O método a seguir 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();
}

Ver também

Elementos da interface do usuário
Classe CMFCVisualManager