다음을 통해 공유


시각 형상 관리자

비주얼 관리자는 전체 응용 프로그램의 모양을 제어 하는 개체입니다.이 단일 클래스로 응용 프로그램에 대 한 모든 드로잉 코드를 넣을 수 있습니다 역할을 합니다.MFC 라이브러리 여러 비주얼 관리자를 포함합니다.응용 프로그램에 대 한 사용자 지정 보기를 만들려면 원하는 경우 직접 비주얼 관리자를 만들 수도 있습니다.다른 비주얼 관리자를 사용 하는 경우 다음 이미지가 동일한 응용 프로그램을 보여 줍니다.

CMFCVisualManagerWindows 비주얼 관리자를 사용 하 여 MyApp

CMFCVisualManagerWindows에서 렌더링된 MyApp

CMFCVisualManagerVS2005 비주얼 관리자를 사용 하 여 MyApp

CMFCVisualManagerVS2005에서 렌더링된 MyApp

CMFCVisualManagerOfficeXP 비주얼 관리자를 사용 하 여 MyApp

CMFCVisualManagerOfficeXP에서 렌더링된 MyApp

CMFCVisualManagerOffice2003 비주얼 관리자를 사용 하 여 MyApp

CMFCVisualManagerOffice2003에서 렌더링된 MyApp

CMFCVisualManagerOffice2007 비주얼 관리자를 사용 하 여 MyApp

CMFCVisualManagerOffice2007에서 렌더링된 MyApp

기본적으로 비주얼 관리자 GUI의 여러 요소에 대 한 그리기 코드를 유지 관리합니다.사용자 지정 UI 요소를 제공 하기 위해 비주얼 관리자의 관련된 드로잉 메서드를 재정의 해야 합니다.이러한 메서드의 목록은 CMFCVisualManager 클래스.사용자 지정 모양을 제공 하도록 재정의할 수 있는 메서드를 시작 하는 모든 메서드는 OnDraw.

응용 프로그램을 하나만 가질 수 있습니다 CMFCVisualManager 개체입니다.비주얼 관리자 응용 프로그램에 대 한 포인터를 얻을 수 있는 정적 함수를 호출 합니다. CMFCVisualManager::GetInstance.모든 비주얼 관리자에서 상속 하기 때문에 CMFCVisualManager, CMFCVisualManager::GetInstance 메서드는 get 포인터 적절 한 비주얼 관리자에 시각적 사용자 지정 관리자를 만드는 경우에.

사용자 지정 비주얼 관리자를 만들려면 이미 비주얼 관리자에서 파생 되어야 합니다.기본 클래스에서 파생 된 CMFCVisualManager.그러나 더 나은 원하는 응용 프로그램에 대해 유사한 경우 다른 비주얼 관리자를 사용할 수 있습니다.예를 들어, 사용 하고자 하는 경우는 CMFCVisualManagerOffice2007 하지만 비주얼 관리자를 원했습니다만 구분 기호 모양을 변경 하려면, 사용자 지정 클래스에서 파생 될 수 있습니다 CMFCVisualManagerOffice2007.이 시나리오에서는 그리기 구분 기호에 대 한 메서드만 덮어쓰지 마십시오.

비주얼 관리자는 특정 응용 프로그램에 사용 하는 두 가지 방법이 있습니다.단방향 호출 하는 것은 CMFCVisualManager::SetDefaultManager 메서드와 해당 비주얼 관리자 매개 변수로 전달 합니다.다음 코드 예제에서는 사용 하는 방법 보여 줍니다는 CMFCVisualManagerVS2005 이 방법을 비주얼 관리자:

CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS (CMFCVisualManagerVS2005));

비주얼 관리자는 응용 프로그램에서 사용 하는 다른 방법은를 수동으로 만드는 것입니다.응용 프로그램에서 다음이 새로운 비주얼 관리자 모든 렌더링을 사용 합니다.그러나 하나만 있을 수 있으므로 CMFCVisualManager 개체 당 응용 프로그램을 새로 만들기 전에 현재 비주얼 관리자를 삭제 해야 합니다.다음 예제에서는 CMyVisualManager 에서 파생 되는 사용자 지정 visual 관리자입니다 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 클래스

기타 리소스

사용자 인터페이스