因爲EasyUse程序要用到鍵盤加速,中間遇到了一些難題。彙總以便以後使用。
1、該在哪個地方截取消息(?)
關於這問題,認識還不夠深刻。有一點可以確定,你在程序運行的CXXApp和CXXDlg的PreTranslateMessage()中截取消息函數肯定是不一樣的。
一個是程序運行全過程都可以出發鍵盤操作的。
關於在對話框中出發消息,是在PreTranslateMessage()還是在OnKeyDown()中觸發,還暫時沒搞清楚。留以後搞清楚了去寫。我是在PreTranslateMessage()中出發也沒有成功
2、用什麼判斷觸發了鍵盤操作。
1.可以檢查MSG *pMsg變量的message變量判斷消息的類型。當爲WM_KEYDOWN時表示,有鍵被按下pMsg->wParam說明是什麼鍵被按下。
具體的鍵的表示如下:
符號形式 十六進制形式 說明
VK_LBUTTON 01 鼠標左鍵
VK_RBUTTON 02 鼠標右鍵
VK_CANCEL 03 Control-break 過程
VK_MBUTTON 04 鼠標中鍵
VK_BACK 08 BACKSPACE 鍵
VK_TAB 09 TAB 鍵
VK_CLEAR 0C CLEAR 鍵
VK_RETURN 0D ENTER 鍵
VK_SHIFT 10 SHIFT 鍵