可视化管理器

视觉管理器是对象控制整个应用程序的外观。作为可放在应用程序的所有绘图代码的单个类。MFC 库包含几种视觉管理器。,如果要创建自己的应用程序,自定义视图还可以创建自己的视觉管理器。,在不同的视觉管理器启用时,下面的图像显示同一应用程序:

使用 CMFCVisualManagerWindows 视觉管理器的 MyApp

由 CMFCVisualManagerWindows 呈现的 MyApp

使用 CMFCVisualManagerVS2005 视觉管理器的 MyApp

由 CMFCVisualManagerVS2005 呈现的 MyApp

使用 CMFCVisualManagerOfficeXP 视觉管理器的 MyApp

由 CMFCVisualManagerOfficeXP 呈现的 MyApp

使用 CMFCVisualManagerOffice2003 视觉管理器的 MyApp

由 CMFCVisualManagerOffice2003 呈现的 MyApp

使用 CMFCVisualManagerOffice2007 视觉管理器的 MyApp

由 CMFCVisualManagerOffice2007 呈现的 MyApp

默认情况下,视觉管理器维护几个编程元素的绘图代码。若要提供自定义 UI 元素,则需要重写视觉管理器的相关绘制方法。有关这些方法的列表,请参见 CMFCVisualManager 类。您可以重写提供自定义外观的方法是以 OnDraw的所有方法。

应用程序只能有一 CMFCVisualManager 对象。若要获取指向应用程序的视觉管理器,请调用静态函数 CMFCVisualManager::GetInstance。由于所有视觉管理器从 CMFCVisualManager继承, CMFCVisualManager::GetInstance 方法将获取指向适当的视觉管理器,因此,即使您创建自定义视觉管理器。

如果您希望创建自定义视觉管理器,您必须从已存在的可视管理器派生。派生的默认类从是 CMFCVisualManager。但是,您可以使用不同的视觉管理器,则更好类似。您对应用程序需要的权限。例如,因此,如果要使用 CMFCVisualManagerOffice2007 视觉管理器,但是,只希望更改分隔符如何查找,可从 CMFCVisualManagerOffice2007派生自定义类。在此方案中,您应复盖绘制的分隔符只有方法。

有两种可能的方式使用您的应用程序使用特定的视觉管理器。一种方式是调用 CMFCVisualManager::SetDefaultManager 方法并传入相应的视觉管理器作为参数。下面的代码示例演示如何使用具有此方法的 CMFCVisualManagerVS2005 视觉管理器:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

另一种使用可视管理器在应用程序中手动创建它。应用程序的所有呈现然后将使用此新的视觉管理器。但是,在中,因为只能有每个应用程序的一 CMFCVisualManager 对象,则必须删除当前视觉管理器,在创建新的过程。在下面的示例中, CMyVisualManager 是从 CMFCVisualManager派生的自定义视觉管理器。以下方法根据索引将更改可视化管理器用于显示您的应用程序,例如:

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

请参见

参考

CMFCVisualManager 类

其他资源

用户界面