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 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 renderizado por CMFCVisualManagerVS2005.
MyApp que usa o gerenciador visual CMFCVisualManagerVS2005

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

MyApp renderizado por CMFCVisualManagerOffice2003.
MyApp que usa o gerenciador visual CMFCVisualManagerOffice2003

MyApp renderizado 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 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, consulte a 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 do aplicativo, chame a função estática CMFCVisualManager::GetInstance. Como todos os gerentes visuais herdam de 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 de visuais personalizado, deverá derive-o de um gerenciador visual que já exista. A classe padrão da qual derivar é 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 CMFCVisualManagerOffice2007 gerenciador visual, mas quisesse apenas alterar a aparência dos separadores, poderia derivar sua classe personalizada.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 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 de visuais para toda a renderização. No entanto, como pode haver apenas um CMFCVisualManager objeto por aplicativo, você precisará excluir o gerenciador visual atual antes de criar um novo. No exemplo a seguir, CMyVisualManager é um gerenciador de visuais personalizado derivado de CMFCVisualManager. O método a seguir alterará qual gerenciador visual é usado para exibir seu aplicativo, de acordo com 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();
}

Consulte também

Elementos de interface de usuário
Classe CMFCVisualManager