티스토리 뷰

Visual Studio 2012


MFC 대화상자에서 최소화, 최대화, 복원, X버튼(종료)시의 이벤트 핸들링하기


1. 클래스 마법사에서 WM_SYSCOMMAND 처리기 추가

 - 시스템 버튼들을 누르면 WM_SYSCOMMAND 메시지가 발생한다.

  * 클래스마법사 - 클래스이름 확인 - 메시지 - WM_SYSCOMMAND 처리기 추가



2. 코딩 구현

 - wParam에 현재 발생된 시스템 명령을 받고, 이것을 비교하여 원하는 시스템 명령에서만 동작하게 구현


void CDialog3::OnSysCommand(UINT nID, LPARAM lParam)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
	
	if(nID == SC_CLOSE)	
	{
		//종료버튼 눌릴 시
	}
	else if(nID == SC_MAXIMIZE)
	{ 
		//최대화 버튼 눌릴 시
	}
	else if(nID == SC_MINIMIZE)
	{ 
		//최소화 버튼 눌릴 시
	}
	else if(nID == SC_RESTORE) 
	{ 
		//복원 상황에서
	} 
	CDialogEx::OnSysCommand(nID, lParam);
}


댓글