Program Language/API | MFC

[MFC] Frame 크기 고정하기

야곰야곰+책벌레 2021. 9. 15. 15:50
728x90
반응형

MFC에서 Frame 크기를 고정하기 위해서는 CMainFrame 클래스의 ON_WM_GETMINMAXINFO 메시지를 사용해야 한다.

ON_WM_GETMINMAXINFO메시지를 추가하면 OnGetMinMaxInfo 함수가 생성된다.

 

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
	lpMMI->ptMinTrackSize.x = 프레임 너비;
	lpMMI->ptMinTrackSize.y = 프레임 높이;
	lpMMI->ptMaxSize.x      = 프레임 너비;
	lpMMI->ptMaxSize.y      = 프레임 높이;

	CFrameWnd::OnGetMinMaxInfo(lpMMI);
}

과 같이 작성하면 된다. 프레임을 화면 크기로 유지하려면 PreCreateWindow()에서 다음과 같이 크기를 받아올 수 있다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	m_nFrameWidth  = GetSystemMetrics(SM_CXSCREEN); // 스크린 크기
	m_nFrameHeight = GetSystemMetrics(SM_CYSCREEN); // 스크린 크기

	return TRUE;
}

변수에 저장한 뒤, OnMinMaxInfo() 함수에서 사용하면 된다.

728x90
반응형