정리

[MFC] MainFrame 크기 고정

저장소/VC++
최초 실행시 MainFrame의 크기를 정하기 위해서는 PreCreateWindow를 재정의하여 다음과 같이 해주면 된다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWndEx::PreCreateWindow(cs) )
		return FALSE;
	cs.cx = 1024;
	cs.cy = 768;

	...

}


MainFrame의 크기를 고정하기 위해서는 WM_GETMINMAXINFO 메시지를 다음과 같이 처리해주면 된다.

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
	lpMMI->ptMinTrackSize.x = 1024;
	lpMMI->ptMinTrackSize.y = 768;
	lpMMI->ptMaxTrackSize.x = 1024;
	lpMMI->ptMaxTrackSize.Y = 768;

	CFrameWndEx::OnGetMinMaxInfo(lpMMI);
}


이와 같이 처리하면 MainFrame의 크기를 변경할 수 없게 된다.
크기 변경 불가, 최대화 버튼 비활성화를 처리하기 위해서는 PreCreateWindow에서 style을 다음과 같이 변경해주면 된다.

cs.style &= ~FWS_MAXMIZEBOX; cs.style &= ~FWS_THICKFRAME;

'저장소 > VC++' 카테고리의 다른 글

[Win32 API] GetAsyncKeyState  (0) 2011.11.25
[MFC] DestroyWindow  (0) 2011.11.24
[Win32 API] Window Styles  (0) 2011.10.10
[MFC] CFileDialog 사용 주의점  (0) 2011.09.23
[Error/Warnning] error LNK2005  (0) 2011.08.16