Compartilhar via


Gerenciador de visualização

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

MyApp as rendered by CMFCVisualManagerWindows.
MyApp que usa o gerenciador visual CMFCVisualManagerWindows

MyApp as rendered by CMFCVisualManagerVS2005.
MyApp que usa o gerenciador visual CMFCVisualManagerVS2005

MyApp as rendered by CMFCVisualManagerOfficeXP.
MyApp que usa o gerenciador visual CMFCVisualManagerOfficeXP

MyApp as rendered by CMFCVisualManagerOffice2003.
MyApp que usa o gerenciador visual CMFCVisualManagerOffice2003

MyApp as rendered by 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 de 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, confira 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 objeto CMFCVisualManager. Para obter um ponteiro para o gerenciador visual do aplicativo, chame a função estática CMFCVisualManager::GetInstance. Como todos os gerenciadores visuais herdam CMFCVisualManager, o método CMFCVisualManager::GetInstance obterá um ponteiro para o gerenciador visual apropriado, mesmo se você criar um gerenciador visual personalizado.

Se você quiser criar um gerenciador visual personalizado, deverá derivá-lo de um gerenciador visual que já existe. A classe padrão a ser derivada é CMFCVisualManager. No entanto, você poderá usar um gerenciador visual diferente se ele for mais parecido com o que você deseja para seu aplicativo. Por exemplo, se você quisesse usar o gerenciador visual CMFCVisualManagerOffice2007, mas quisesse apenas alterar a aparência dos separadores, você 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 seguinte exemplo de código mostra como você usaria o gerenciador visual CMFCVisualManagerVS2005 com este método:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

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

Confira também

Elementos de interface de usuário
Classe CMFCVisualManager