프로그래밍/VC++

전역 단축키 걸기

panpro 2008. 3. 4. 10:29

RegisterHotKey 사용법...

1. 시작 시기에 걸맞는 곳에다 코딩한다.

   예를 들어 CMainFrame의 OnCreate에 코딩한다고 하고, Ctrl + P를 핫키로 하겠다면

   멤버 변수로 int m_nHotKeyID;

   m_nHotKeyID = ::GlobalAddAtom("test");

   if(!::RegisterHotKey(GetSafeHwnd(), m_nHotKeyID, MOD_CONTROL, 'P'))

       AfxMessageBox("핫키 등록 실패!");

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

   메시지맵에 ON_MESSAGE(WM_HOTKEY, OnHotKey)

   한다. 이 때 //}}AFX_MSG_MAP 바깥에 한다.

   LONG CMainFrame::OnHotKey(WPARAM wParam, LPARAM lParam)
   {
       if((int)wParam == m_nHotKeyID)
       {
           // 하고 싶은 일 구현
       }
   }

3. 종료할 때 핫키를 해제한다.

   void CMainFrame::OnClose()
   {
       ::UnregisterHotKey(GetSafeHwnd(), m_nHotKeyID);
   }