如何在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); //回車對(duì)應(yīng)ok } if (pMsg-> message == WM_KEYDOWN) { if(pMsg-> wParam== VK_BACK)//直接用虛碼代替就可以響應(yīng)所指鍵 SetInfo(WDK_C); //backspace對(duì)應(yīng)刪除 } return CDialog::PreTranslateMessage(pMsg); } 3. 虛擬[xu ni]值 VK_LBUTTON 01 鼠標(biāo)左鍵 VK_RBUTTON 02 鼠標(biāo)右鍵 VK_CANCEL 03 Control-break 過(guò)程 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鍵 對(duì)于非小鍵盤上的數(shù)字鍵和字母鍵,直接在單引號(hào)中加入該鍵就行 比如: 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); } |
|