2008. 5. 17. 15:13
프로그램 Alt+F4 감지 Programing/Windows Programing2008. 5. 17. 15:13
프로그램에서 Alt+F4를 입력받으면
중간에 어떠한 일을 수행하고 종료를 해야 하는 경우가 있다
그 때 Alt+F4 를 감지해서 특정 일을 수행 한 후 종료하게 하려면
다음과 같이 작성해라
PreTranslateMessage에서 감지 하여도 되지만
중간에 어떠한 일을 수행하고 종료를 해야 하는 경우가 있다
그 때 Alt+F4 를 감지해서 특정 일을 수행 한 후 종료하게 하려면
다음과 같이 작성해라
BOOL CDirectVideoDialog::PreTranslateMessage(MSG* pMsg)
{
// 중간 생략
if(pMsg->message == WM_SYSKEYDOWN && pMsg->wParam == VK_F4)
{
// 중간 생략
if(pMsg->message == WM_SYSKEYDOWN && pMsg->wParam == VK_F4)
{
if (::GetKeyState(VK_MENU) < 0)
{
//여기에 할 일을 작성
return TRUE;
}
}
// 중간 생략
}
if (::GetKeyState(VK_MENU) < 0)
{
//여기에 할 일을 작성
return TRUE;
}
}
// 중간 생략
}
PreTranslateMessage에서 감지 하여도 되지만
WM_SYSCOMMAND에서도 처리할 수 있습니다.
아래와 같이 하면 프로그램 오른쪽 위에 있는 닫기 버튼에 대해서도 닫기가 안되도록 처리 할 수있고
Alt+F4에 대해서도 그리고 메뉴->닫기 에 대해서도 처리할 수 있습니다.
void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if( nID == SC_CLOSE )
{
// 할일 작성
return;
}
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
'Programing > Windows Programing' 카테고리의 다른 글
다이얼로그 가장자리 깎아내기 (0) | 2008.05.21 |
---|---|
FMod 기본 사용법 (0) | 2008.05.21 |
리스트컨트롤 아이템 자동 선택 하기 (2) | 2008.05.15 |
List Ctrl 아래로 정렬 시키기 (0) | 2008.05.14 |
특정 컨트롤 시스템키 조합 이벤트 설정 (0) | 2008.05.10 |