有两种方法实现HotKey
首先 UIDialog : public CDialog
第一种方法
LONG OnHotKey(WPARAM wParam, LPARAM lParam);
UIDialog.cpp
BEGIN_MESSAGE_MAP(UIDialog, ...)
//{{AFX_MSG_MAP(CMainFormView)
ON_MESSAGE(WM_HOTKEY, OnHotKey)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
添加 RegisterHotKey(GetSafeHwnd(),m_nHotKeyID_CS,MOD_CONTROL,'V'); 到方法 InitDialog() 中
LONG CMainFormView::OnHotKey(WPARAM wParam, LPARAM IParam)
{
UINT uVirtKey = (UINT) HIWORD(IParam);
if(uVirtKey == 'V'){
...
}
return 0;
}
第二种方法
监听View 中Key Event
添加 virtual BOOL PreTranslateMessage 到 UIDialog 中
UIDialog.h
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFormView)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
UIDialog.cpp
BOOL UIDialog::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN){}
}