본문 바로가기

무언가 만들기 위한 지식/Win32/MFC

MFC 메뉴창 삭제, 창 크기/위치 고정

윈도창에 뜨는 [파일/편집/.....]등의 메뉴창을 삭제하여 깔끔하게 보이고 싶을 때가 있다.
그경우 MainFrm.cpp 상에서 PreCreateWindow 함수에서 약간의 수정을 가해주면 된다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	//메뉴 창 삭제
	if(cs.hMenu!=NULL){
		::DestroyMenu(cs.hMenu);
		cs.hMenu=NULL;
	}
	//메뉴 창 삭제 끝
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	return TRUE;
}

다음과 같이 하면 메뉴창이 삭제되는 모습을 확인할 수 있다.

참고로
2009/08/31 - [Study/Win32&&MFC] - MFC 프로그램 전체화면으로 전환하기(제목표시줄 삭제)
를 통해 제목표시줄도 삭제 가능하고 전체화면으로 전환도 가능하다.

추가로 처음 생성되는 창의 크기 및 위치를 지정하고 싶다면 다음의 코드를 참고 한다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	//  창 크기 및 스타일, 시작 위치 지정
	cs.style&=~WS_THICKFRAME&~WS_MAXIMIZEBOX;
	cs.x=100;
	cs.y=100;
	cs.cx=560;
	cs.cy=350;
	//  창 크기 및 스타일, 시작 위치 지정 끝
	return TRUE;
}

위 부분을 참고하면 처음 생성되는 전체 Frame의 위치 및 크기를 정할 수 있다. (크기고정)