다음을 통해 공유


MFC로 만든 창 스타일 변경

해당 버전에서의 WinMain MFC 함수를 여러 표준 창 클래스를 등록 합니다.일반적으로 MFC를 편집 하지 않으므로 WinMain, 함수에서는 MFC 기본 창 스타일을 변경할 수 없는 기회를 제공 합니다.이 문서에서는 기존 응용 프로그램에는 이러한 미리 등록 된 창 클래스의 스타일을 변경 하는 방법 설명 합니다.

새 MFC 응용 프로그램에 대 한 스타일 변경

Visual C++ 2.0 이상을 사용 하는 경우 응용 프로그램을 만들 때 응용 프로그램 마법사에서 기본 창 스타일을 변경할 수 있습니다.응용 프로그램 마법사의 사용자 인터페이스 기능 페이지에서 주 프레임 창 및 MDI 자식 창 스타일을 변경할 수 있습니다.각 창 형식의 프레임 두께 (굵은 또는는)을 지정할 수 있습니다 및 다음:

  • 창을 최소화 또는 최대화 컨트롤 있는지 여부.

  • 창 최대화, 최소화 처음 표시할 것인지 아니면 둘.

주 프레임 창의 경우 창에 시스템 메뉴가 있는지 여부를 지정할 수도 있습니다.MDI 자식 창의 경우 분할자 창 지원 여부를 지정할 수 있습니다.

기존 응용 프로그램에 대 한 스타일 변경

기존 응용 프로그램의 창 특성을 변경 하는 경우이 문서의 나머지 부분에서 대신 지시 합니다.

응용 프로그램 마법사로 만든 응용 프로그램 프레임 워크 사용 기본 창 특성을 변경 하려면 창의 무시 PreCreateWindow 가상 멤버 함수입니다.PreCreateWindow응용 프로그램이 일반적으로 내부적으로 관리 작성 프로세스에 액세스할 수 있는 CDocTemplate 클래스입니다.프레임 워크 호출 PreCreateWindow 하기 직전에 창을 만들기.수정 하 여는 스타일 구조체를 전달 하려면 PreCreateWindow, 응용 프로그램 창을 만드는 데 사용 되는 특성을 변경할 수 있습니다.예를 들어, 창 캡션을 사용 하지 않도록 하려면 다음 연산을 사용 하십시오.

// cs has been declared as CREATESTRUCT& cs;
cs.style &= ~WS_CAPTION;

CTRLBARS 샘플 응용 프로그램 창 특성을 변경 하기 위한이 기법을 보여 줍니다.응용 프로그램의 변경에 따라 PreCreateWindow, 함수는 기본 클래스 구현을 호출 해야 합니다.

다음 토론 SDI 사례에 설명 하는 MDI 케이스.

SDI 사례

단일 문서 인터페이스 (SDI) 응용 프로그램에서 기본 창 스타일의 프레임 워크를 조합한 것을 WS_OVERLAPPEDWINDOW창의 FWS_ADDTOTITLE 스타일입니다.창의 FWS_ADDTOTITLE 프레임 워크는 창 캡션에 문서 제목을 추가 하려면 지시 하는 MFC 관련 스타일입니다.SDI 응용 프로그램의 창 특성을 변경 하려면 재정의 PreCreateWindow 파생 클래스의 함수에서 CFrameWnd (는 응용 프로그램 마법사 이름 CMainFrame).예를 들면 다음과 같습니다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    // Call the base-class version
   if( !CFrameWnd::PreCreateWindow(cs) )
      return FALSE;

    // Create a window without min/max buttons or sizable border 
    cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

    // Size the window to 1/3 screen size and center it 
    cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3; 
    cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3; 
    cs.y = ((cs.cy * 3) - cs.cy) / 2; 
    cs.x = ((cs.cx * 3) - cs.cx) / 2;

   return TRUE;
}

주 프레임 창을 최소화 및 최대화 단추 및 크기 조정 가능한 테두리 없이이 코드를 만듭니다.처음에 창은 화면에서 가운데에 맞춰집니다.

MDI 사례

다중 문서 인터페이스 (MDI) 응용 프로그램에서 자식 창의 창 스타일을 변경 하려면 약간의 작업이 더 필요 합니다.기본적으로 기본 응용 프로그램 마법사에서 생성 된 MDI 응용 프로그램을 사용 CMDIChildWnd MFC에서 정의 하는 클래스입니다.MDI 자식 창의 창 스타일을 변경 하려면 새 클래스에서 파생 되어야 CMDIChildWnd 에 대 한 모든 참조를 대체 하 고 CMDIChildWnd 프로젝트에 새 클래스에 대 한 참조.대부분의 경우에 참조 CMDIChildWnd 응용 프로그램에서 응용 프로그램에 있는 InitInstance 멤버 함수입니다.

MDI 응용 프로그램에서 사용 되는 기본 창 스타일을 조합한 것은 WS_CHILD, WS_OVERLAPPEDWINDOW, 및 창의 FWS_ADDTOTITLE 스타일.자식 창은 MDI 응용 프로그램의 창 특성을 변경 하려면 재정의 PreCreateWindow 파생 클래스의 함수에서 CMDIChildWnd.예를 들면 다음과 같습니다.

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   // Create a child window without the maximize button 
    cs.style &= ~WS_MAXIMIZEBOX; 

   return CMDIChildWnd::PreCreateWindow(cs);
}

이 코드는 windows 최대화 단추가 없는 MDI 자식을 만듭니다.

x07xt611.collapse_all(ko-kr,VS.110).gif추가 정보

참고 항목

개념

프레임 창의 스타일 (C++)