如何在vc中添加鍵盤響應(yīng)事件
1. ClassView中Add Windows Message Handle 添加WM-KEYDOWN和WM-KEYUP,Add Virtural Functions添加PreTranslateMessage
2. BOOL **Dlg::PreTranslateMessage(MSG* pMsg)中添加
{
if (pMsg-> message == WM_KEYDOWN)
{
if(pMsg-> wParam== VK_RETURN)//直接用虛碼代替就可以響應(yīng)所指鍵
SetInfo(WDK_OK); //回車對應(yīng)ok
}
if (pMsg-> message == WM_KEYDOWN)
{
if(pMsg-> wParam== VK_BACK)//直接用虛碼代替就可以響應(yīng)所指鍵
SetInfo(WDK_C); //backspace對應(yīng)刪除
}
return CDialog::PreTranslateMessage(pMsg);
}
3. 虛擬[xu ni]值
VK_LBUTTON 01 鼠標(biāo)左鍵
VK_RBUTTON 02 鼠標(biāo)右鍵
VK_CANCEL 03 Control-break 過程
VK_MBUTTON 04 鼠標(biāo)中鍵
VK_BACK 08 BACKSPACE 鍵
VK_TAB 09 TAB 鍵
VK_CLEAR 0C CLEAR 鍵
VK_RETURN 0D ENTER 鍵
VK_SHIFT 10 SHIFT 鍵
VK_CONTROL 11 CTRL 鍵
VK_MENU 12 ALT 鍵
VK_PAUSE 13 PAUSE 鍵
VK_CAPITAL 14 CAPS LOCK 鍵
VK_ESCAPE 1B ESC 鍵
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP 鍵
VK_NEXT 22 PAGE DOWN 鍵
VK_END 23 END 鍵
VK_HOME 24 HOME 鍵
VK_LEFT 25 LEFT ARROW 鍵
VK_UP 26 UP ARROW 鍵
VK_RIGHT 27 RIGHT ARROW 鍵
VK_DOWN 28 DOWN ARROW 鍵
VK_SELECT 29 SELECT 鍵
VK_EXECUTE 2B EXECUTE 鍵
VK_SNAPSHOT 2C PRINT SCREEN鍵
VK_INSERT 2D INS 鍵
VK_DELETE 2E DEL 鍵
VK_HELP 2F HELP鍵
對于非小鍵盤上的數(shù)字鍵和字母鍵,直接在單引號中加入該鍵就行
比如: a 鍵: 'A'
1 鍵: '1'
VK_LWIN 5B Left Windows 鍵 (Microsoft自然鍵盤)
VK_RWIN 5C Right Windows 鍵 (Microsoft自然鍵盤)
VK_APPS 5D Applications 鍵 (Microsoft自然鍵盤)
VK_NUMPAD0 60 數(shù)字小鍵盤上的 0 鍵
VK_NUMPAD1 61 數(shù)字小鍵盤上的 1 鍵
VK_NUMPAD2 62 數(shù)字小鍵盤上的 2 鍵
VK_NUMPAD3 63 數(shù)字小鍵盤上的 3 鍵
VK_NUMPAD4 64 數(shù)字小鍵盤上的 4 鍵
VK_NUMPAD5 65 數(shù)字小鍵盤上的 5 鍵
VK_NUMPAD6 66 數(shù)字小鍵盤上的 6 鍵
VK_NUMPAD7 67 數(shù)字小鍵盤上的 7 鍵
VK_NUMPAD8 68 數(shù)字小鍵盤上的 8 鍵
VK_NUMPAD9 69 數(shù)字小鍵盤上的 9 鍵
VK_MULTIPLY 6A Multiply 鍵
VK_ADD 6B Add鍵
VK_SEPARATOR 6C Separator 鍵
VK_SUBTRACT 6D Subtract 鍵
VK_DECIMAL 6E Decimal 鍵
VK_DIVIDE 6F Divide 鍵
VK_F1 70 F1 鍵
VK_F2 71 F2 鍵
VK_F3 72 F3 鍵
VK_F4 73 F4 鍵
VK_F5 74 F5 鍵
VK_F6 75 F6 鍵
VK_F7 76 F7 鍵
VK_F8 77 F8 鍵
VK_F9 78 F9 鍵
VK_F10 79 F10 鍵
VK_F11 7A F11 鍵
VK_F12 7B F12 鍵
VK_F13 7C F13 鍵
VK_F14 7D F14 鍵
VK_F15 7E F15 鍵
VK_F16 7F F16 鍵
VK_F17 80H F17 鍵
VK_F18 81H F18 鍵
VK_F19 82H F19 鍵
VK_F20 83H F20 鍵
VK_F21 84H F21 鍵
VK_F22 85H F22 鍵
VK_F23 86H F23 鍵
VK_F24 87H F24 鍵
VK_NUMLOCK 90 NUM LOCK 鍵
VK_SCROLL 91 SCROLL LOCK 鍵
VK_ATTN F6 Attn 鍵
VK_CRSEL F7 CrSel 鍵
VK_EXSEL F8 ExSel 鍵
VK_EREOF F9 Erase EOF 鍵
VK_PLAY FA Play 鍵
VK_ZOOM FB Zoom 鍵
VK_OEM_CLEAR FE Clear 鍵
4. 組合鍵的用法:(本例響應(yīng)Ctrl+X鍵)
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
if (pMsg-> message == WM_KEYDOWN)
{
switch (pMsg-> wParam)
{
case VK_ESCAPE:
SetFocus ();
return TRUE;
case 'X':
if(::GetKeyState(VK_CONTROL) < 0)
MessageBox(" hello" );
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}