최초 윈도우 크기,




1. 윈도우의 가장 기본 틀이 되는 CMainFram 에서 정해 준다.
   CMainFram 클래스 중에서도 PreCreateWindow() 함수에서 작업해 준다.

   PreCreateWindow()    :    윈도우가 생성되기 전 호출되는 함수
     - Parameter cs 에는 생성되는 윈도우의 정보를 담고 있는 구조체 이다.
     - cs 구조체 멤버 중에서 cx, cy 는 각각 메인 윈도우 가로, 세로 길이를 나타낸다.   

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) )
        return FALSE;

    cs.cx = 1000;                           /*< 메인 윈도우의 가로 길이 */
    cs.cy = 700;                            /*< 메인 윈도우의 세로 길이 */
    
    return TRUE;
}




2. CWinApp 의 파생 클래스에서 윈도우 크기 조정
   MFC 응용프로그램은 CWinApp 클래스을 기반 클래스로 고유의 파생 클래스를 만든다.
  InitInstance() 함수는 응용프로그램 관련 윈도우 생성 및 초기화 작업을 한다.
  m_pMainWnd 변수의 SetWindowPos() 함수로 윈도우 크기를 조정해 줄수도 있다.
  
  - CMainFrame 에서 윈도우 크기를 정하는 것과 차이점
    생성되는 윈도우의 크기는 CMainFrame 에서 PreCreateWindow() 함수 안에서 결정 된다.
    생성된 윈도우를 SetWindowsPos() 함수를 이용해서 지정해준 값 만큼 크기를 조정해서 보여는 것이다. 
    SetWindowPos() 함수의 두번째, 세번째 인수는 출력 윈도우의 위치이고,
    네번째, 다섯번째 인수는 각각 x축, y축 으로의 길이 이다.
m_pMainWnd->SetWindowPos(NULL, 10106006000);

 

                    ※ 원래 윈도우의 크기를 줄여서 보여주는 것이기 때문에 스크롤이 생긴다.



3. 윈도우 크기 고정
  CMainFrame 클래스에서 PreCreateWindow() 함수가 기본적으로 설정 하는 윈도우 스타일은

cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE | WS_THICKFRAME
           | WS_SYSMENU | WS_MINIMIZEBOX | WS_MINIMIZEBOX | WS_MAXIMIZE;


  여기서 WS_THICKFRAME 스타일을 제거하면 처음 생긴 윈도우의 크기를 조절할 수 없다. 즉, 크기 고정

 cs.style &= ~WS_THICKFRAME;



##

Posted by six605
,