최초 윈도우 크기,
1. 윈도우의 가장 기본 틀이 되는 CMainFram 에서 정해 준다.
CMainFram 클래스 중에서도 PreCreateWindow() 함수에서 작업해 준다.
PreCreateWindow() : 윈도우가 생성되기 전 호출되는 함수
- Parameter cs 에는 생성되는 윈도우의 정보를 담고 있는 구조체 이다.
- cs 구조체 멤버 중에서 cx, cy 는 각각 메인 윈도우 가로, 세로 길이를 나타낸다.
2. CWinApp 의 파생 클래스에서 윈도우 크기 조정
MFC 응용프로그램은 CWinApp 클래스을 기반 클래스로 고유의 파생 클래스를 만든다.
InitInstance() 함수는 응용프로그램 관련 윈도우 생성 및 초기화 작업을 한다.
m_pMainWnd 변수의 SetWindowPos() 함수로 윈도우 크기를 조정해 줄수도 있다.
- CMainFrame 에서 윈도우 크기를 정하는 것과 차이점
생성되는 윈도우의 크기는 CMainFrame 에서 PreCreateWindow() 함수 안에서 결정 된다.
생성된 윈도우를 SetWindowsPos() 함수를 이용해서 지정해준 값 만큼 크기를 조정해서 보여는 것이다.
SetWindowPos() 함수의 두번째, 세번째 인수는 출력 윈도우의 위치이고,
네번째, 다섯번째 인수는 각각 x축, y축 으로의 길이 이다.
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;
}
{
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, 10, 10, 600, 600, 0);
※ 원래 윈도우의 크기를 줄여서 보여주는 것이기 때문에 스크롤이 생긴다.
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;
##