LuvSea

[MFC] Register Hotkey 사용 본문

sTudy

[MFC] Register Hotkey 사용

사랑海 2009. 9. 24. 14:23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. 시작 시기에 걸맞는 곳에다 코딩한다.
예를 들어 CMainFrame의 OnCreate에 코딩한다고 하고, Ctrl + P를 핫키로 하겠다면

// 멤버 변수로 CMainFrame() Header파일에 전역변수 등록
int m_nHotKeyID;
// ~CMainFrame()::OnCreate 함수 등록
m_nHotKeyID = ::GlobalAddAtom("test");
if(!::RegisterHotKey(GetSafeHwnd(), m_nHotKeyID, MOD_CONTROL, 'P'))
AfxMessageBox("핫키 등록 실패!");

2. CMainFrame에 afx_msg LONG OnHotKey(WPARAM wParam, LPARAM lParam)함수 추가

// CMainFrame 내부에 함수 구현.
afx_msg LONG OnHotKey(WPARAM wParam, LPARAM lParam)
// MainFrm.h에 함수 추가.ON_MESSAGE(WM_HOTKEY, OnHotKey)
// 메세지 맵에 추가
LONG CMainFrame::OnHotKey(WPARAM wParam, LPARAM lParam)  
{
    if((int)wParam == m_nHotKeyID)
    // 하고 싶은 일 구현
    // 만약 익스플로러를 실행하려고 하면
    WinExec("익스 경로", SW_SHOWNORMAL);
}
3. 종료할 때 핫키를 해제한다.
// ~CMainFrame()::OnCreate 함수 등록
void CMainFrame::OnClose()
{
    ::UnregisterHotKey(GetSafeHwnd(), m_nHotKeyID);
}
Comments