Share via


Amministratore di visualizzazione

Il gestore visualizzazione è un oggetto che controlla l'aspetto dell'intera applicazione.Funge da una singola classe in cui è possibile inserire tutto il codice di disegno per l'applicazione.La libreria MFC include diversi gestori visualizzazione.È inoltre possibile creare un gestore visualizzazione se si desidera creare una visualizzazione personalizzata per l'applicazione.Le immagini seguenti mostrano la stessa applicazione quando i gestori visualizzazione differenti sono abilitati:

MyApp che utilizza il gestore visualizzazione di CMFCVisualManagerWindows

Rendering di MyApp mediante CMFCVisualManagerWindows

MyApp che utilizza il gestore visualizzazione CMFCVisualManagerVS2005

Rendering di MyApp mediante CMFCVisualManagerVS2005

MyApp che utilizza il gestore visualizzazione di CMFCVisualManagerOfficeXP

Rendering di MyApp mediante CMFCVisualManagerOfficeXP

MyApp che utilizza il gestore visualizzazione CMFCVisualManagerOffice2003

Rendering di MyApp mediante CMFCVisualManagerOffice2003

MyApp che utilizza il gestore visualizzazione CMFCVisualManagerOffice2007

Rendering di MyApp mediante CMFCVisualManagerOffice2007

Per impostazione predefinita, il gestore visualizzazione gestisce il codice di disegno per diversi elementi di interfaccia utente grafica.Per specificare gli elementi dell'interfaccia utente personalizzati, è necessario eseguire l'override dei metodi correlati di disegno del gestore visualizzazione.Per l'elenco di questi metodi, vedere Classe CMFCVisualManager.I metodi che è possibile sottoporre a override per fornire un aspetto personalizzato sono tutti i metodi che iniziano con OnDraw.

L'applicazione può avere un solo oggetto di CMFCVisualManager .Per ottenere un puntatore al gestore visualizzazione per l'applicazione, chiamare la funzione statica CMFCVisualManager::GetInstance.Poiché tutti i gestori visualizzazione ereditano da CMFCVisualManager, il metodo di CMFCVisualManager::GetInstance ottiene un puntatore al gestore visualizzazione appropriato, anche se si crea un gestore visualizzazione personalizzato.

Se si desidera creare un gestore visualizzazione personalizzato, è necessario derivarlo da un gestore visualizzazione già esistente.La classe predefinita da derivare da è CMFCVisualManager.Tuttavia, è possibile utilizzare un gestore visualizzazione diversa se è meglio agli elementi desiderati per l'applicazione.Ad esempio, se si desidera utilizzare il gestore visualizzazione di CMFCVisualManagerOffice2007 , ma desiderato per modificare solo l'aspetto dei separatori, è possibile derivare la classe personalizzata da CMFCVisualManagerOffice2007.In questo scenario, è necessario sovrascrivere solo i metodi per tracciare i separatori.

Esistono due possibili modi per utilizzare un gestore visualizzazione specifico per l'applicazione.Un modo consiste nel chiamare il metodo di CMFCVisualManager::SetDefaultManager e di passare il gestore visualizzazione appropriato come parametro.Nell'esempio di codice seguente viene illustrato come utilizzare il gestore visualizzazione di CMFCVisualManagerVS2005 con questo metodo:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

L'altro modo di utilizzare un gestore visualizzazione nell'applicazione è di crearlo manualmente.L'applicazione viene quindi utilizzerà questo nuovo gestore visualizzazione per tutto il rendering.Tuttavia, poiché può esistere un solo oggetto di CMFCVisualManager per applicazione, è necessario eliminare il gestore visualizzazione corrente prima di creare un nuovo oggetto.Nell'esempio seguente, CMyVisualManager è un gestore visualizzazione personalizzato derivato da CMFCVisualManager.Il metodo seguente modificherà il gestore visualizzazione viene utilizzato per visualizzare l'applicazione, come un indice:

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

Vedere anche

Riferimenti

Classe CMFCVisualManager

Altre risorse

Interfaccia utente