Partager via


Gestionnaire de visualisation

Le gestionnaire visuel est un objet qui contrôle l'apparence d'une application entière.Il se comporte comme une classe unique où vous pouvez mettre tout le code de dessin pour votre application.La bibliothèque MFC inclut plusieurs gestionnaires visuels.Vous pouvez également créer votre propre gestionnaire visuel si vous souhaitez créer une vue personnalisée pour votre application.Les images suivantes montrent la même application lorsque des gestionnaires visuels sont activés :

MyApp qui utilise le gestionnaire du visuel de CMFCVisualManagerWindows

MyApp rendu par CMFCVisualManagerWindows

MyApp qui utilise le gestionnaire du visuel CMFCVisualManagerVS2005

MyApp rendu par CMFCVisualManagerVS2005

MyApp qui utilise le gestionnaire du visuel de CMFCVisualManagerOfficeXP

MyApp rendu par CMFCVisualManagerOfficeXP

MyApp qui utilise le gestionnaire du visuel CMFCVisualManagerOffice2003

MyApp rendu par CMFCVisualManagerOffice2003

MyApp qui utilise le gestionnaire du visuel CMFCVisualManagerOffice2007

MyApp rendu par CMFCVisualManagerOffice2007

Par défaut, le gestionnaire visuel contient le code de dessin pour plusieurs éléments d'interface GUI.Pour fournir les éléments d'interface personnalisés, vous devez substituer les méthodes connexes de dessin de gestionnaire visuel.Pour la liste de ces méthodes, consultez CMFCVisualManager, classe.Les méthodes que vous pouvez substituer pour fournir une apparence personnalisée sont toutes les méthodes qui commencent par OnDraw.

Votre application peut avoir qu'un seul objet d' CMFCVisualManager .Pour obtenir un pointeur vers le gestionnaire visuel pour votre application, appelez la fonction statique CMFCVisualManager::GetInstance.Comme tous les gestionnaires visuels héritent d' CMFCVisualManager, la méthode d' CMFCVisualManager::GetInstance obtient un pointeur vers le gestionnaire visuel approprié, même si vous créez un gestionnaire visuel personnalisé.

Si vous souhaitez créer un gestionnaire visuel personnalisé, vous devez le dériver d'un gestionnaire visuel existant.La classe par défaut à dériver de est CMFCVisualManager.Toutefois, vous pouvez utiliser un gestionnaire visuel différent si elle ressemble à mieux que vous souhaitez pour votre application.Par exemple, si vous voulez utiliser le gestionnaire visuel d' CMFCVisualManagerOffice2007 , mais souhaité modifier uniquement comment l'apparence de séparateurs, vous pouvez dériver votre classe personnalisée d' CMFCVisualManagerOffice2007.Dans ce scénario, vous devez remplacer que les méthodes pour dessiner des séparateurs.

Il existe deux moyens possibles d'utiliser un gestionnaire visuel spécifique pour votre application.L'une consiste à appeler la méthode de CMFCVisualManager::SetDefaultManager et de passer le gestionnaire visuel approprié comme paramètre.l'exemple de code suivant montre comment vous utiliseriez le gestionnaire visuel d' CMFCVisualManagerVS2005 avec cette méthode :

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

L'autre manière d'utiliser un gestionnaire visuel dans votre application est de créer manuellement.L'application utilise ensuite ce nouveau gestionnaire visuel pour tout le rendu.Toutefois, car il ne peut y avoir qu'un objet d' CMFCVisualManager par application, vous devez supprimer le gestionnaire visuel actuel avant de créer un nouveau.Dans l'exemple suivant, CMyVisualManager est un gestionnaire visuel personnalisé dérivé d' CMFCVisualManager.La méthode suivante modifie le gestionnaire visuel est utilisé pour afficher votre application, selon un index :

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();
}

Voir aussi

Référence

CMFCVisualManager, classe

Autres ressources

Interface utilisateur