case WM_KEYDOWN:
switch(wparam)
{
case VK_ESCAPE:
PostQuitMessage(0);
break;
}
break;
例如上面例子中,Esc键对应的是VK_ESCAPE,那其他的按键对应的值应该怎么才能查出呢?谁能提供一个列表或者查的方法?

解决方案 »

  1.   

    给你一个全的:VK_LBUTTON 01 Left mouse button  
    VK_RBUTTON 02 Right mouse button  
    VK_CANCEL 03 Control-break processing  
    VK_MBUTTON 04 Middle mouse button (three-button mouse)  
    VK_XBUTTON1 05 Windows 2000/XP: X1 mouse button 
    VK_XBUTTON2 06 Windows 2000/XP: X2 mouse button 
    —  07 Undefined  
    VK_BACK 08 BACKSPACE key  
    VK_TAB 09 TAB key  
    —  0A–0B Reserved  
    VK_CLEAR 0C CLEAR key  
    VK_RETURN 0D ENTER key  
    —  0E–0F Undefined  
    VK_SHIFT 10 SHIFT key  
    VK_CONTROL 11 CTRL key  
    VK_MENU 12 ALT key  
    VK_PAUSE 13 PAUSE key  
    VK_CAPITAL 14 CAPS LOCK key  
    VK_KANA 15 IME Kana mode 
    VK_HANGUEL 15 IME Hanguel mode (maintained for compatibility; use VK_HANGUL) 
    VK_HANGUL 15 IME Hangul mode 
    —  16 Undefined  
    VK_JUNJA 17 IME Junja mode 
    VK_FINAL 18 IME final mode 
    VK_HANJA 19 IME Hanja mode 
    VK_KANJI 19 IME Kanji mode 
    —  1A Undefined  
    VK_ESCAPE 1B ESC key  
    VK_CONVERT 1C IME convert 
    VK_NONCONVERT 1D IME nonconvert 
    VK_ACCEPT 1E IME accept 
    VK_MODECHANGE 1F IME mode change request 
    VK_SPACE 20 SPACEBAR  
    VK_PRIOR 21 PAGE UP key  
    VK_NEXT 22 PAGE DOWN key  
    VK_END 23 END key  
    VK_HOME 24 HOME key  
    VK_LEFT 25 LEFT ARROW key  
    VK_UP 26 UP ARROW key  
    VK_RIGHT 27 RIGHT ARROW key  
    VK_DOWN 28 DOWN ARROW key  
    VK_SELECT 29 SELECT key  
    VK_PRINT 2A PRINT key 
    VK_EXECUTE 2B EXECUTE key  
    VK_SNAPSHOT 2C PRINT SCREEN key  
    VK_INSERT 2D INS key  
    VK_DELETE 2E DEL key  
    VK_HELP 2F HELP key  
     30 0 key  
     31 1 key  
     32 2 key  
     33 3 key  
     34 4 key  
     35 5 key  
     36 6 key  
     37 7 key  
     38 8 key  
     39 9 key  
    —  3A–40 Undefined  
     41 A key  
     42 B key  
     43 C key  
     44 D key  
     45 E key  
     46 F key  
     47 G key  
     48 H key  
     49 I key  
     4A J key  
     4B K key  
     4C L key  
     4D M key  
     4E N key  
     4F O key  
     50 P key  
     51 Q key  
     52 R key  
     53 S key  
     54 T key  
     55 U key  
     56 V key  
     57 W key  
     58 X key  
     59 Y key  
     5A Z key  
    VK_LWIN 5B Left Windows key (Microsoft® Natural® keyboard)  
    VK_RWIN 5C Right Windows key (Natural keyboard)  
    VK_APPS 5D Applications key (Natural keyboard)  
    —  5E Reserved  
    VK_SLEEP 5F Computer Sleep key 
    VK_NUMPAD0 60 Numeric keypad 0 key  
    VK_NUMPAD1 61 Numeric keypad 1 key  
    VK_NUMPAD2 62 Numeric keypad 2 key  
    VK_NUMPAD3 63 Numeric keypad 3 key  
    VK_NUMPAD4 64 Numeric keypad 4 key  
    VK_NUMPAD5 65 Numeric keypad 5 key  
    VK_NUMPAD6 66 Numeric keypad 6 key  
    VK_NUMPAD7 67 Numeric keypad 7 key  
    VK_NUMPAD8 68 Numeric keypad 8 key  
    VK_NUMPAD9 69 Numeric keypad 9 key  
    VK_MULTIPLY 6A Multiply key  
    VK_ADD 6B Add key  
    VK_SEPARATOR 6C Separator key  
    VK_SUBTRACT 6D Subtract key  
    VK_DECIMAL 6E Decimal key  
    VK_DIVIDE 6F Divide key  
    VK_F1 70 F1 key  
    VK_F2 71 F2 key  
    VK_F3 72 F3 key  
    VK_F4 73 F4 key  
    VK_F5 74 F5 key  
    VK_F6 75 F6 key  
    VK_F7 76 F7 key  
    VK_F8 77 F8 key  
    VK_F9 78 F9 key  
    VK_F10 79 F10 key  
    VK_F11 7A F11 key  
    VK_F12 7B F12 key  
    VK_F13 7C F13 key  
    VK_F14 7D F14 key  
    VK_F15 7E F15 key  
    VK_F16 7F F16 key  
    VK_F17 80H F17 key  
    VK_F18 81H F18 key  
    VK_F19 82H F19 key  
    VK_F20 83H F20 key  
    VK_F21 84H F21 key  
    VK_F22 85H F22 key  
    VK_F23 86H F23 key  
    VK_F24 87H F24 key  
    —  88–8F Unassigned  
    VK_NUMLOCK 90 NUM LOCK key  
    VK_SCROLL 91 SCROLL LOCK key  
     92–96 OEM specific 
    —  97–9F Unassigned  
    VK_LSHIFT A0 Left SHIFT key 
    VK_RSHIFT A1 Right SHIFT key 
    VK_LCONTROL A2 Left CONTROL key 
    VK_RCONTROL A3 Right CONTROL key 
    VK_LMENU A4 Left MENU key 
    VK_RMENU A5 Right MENU key 
    VK_BROWSER_BACK A6 Windows 2000/XP: Browser Back key 
    VK_BROWSER_FORWARD A7 Windows 2000/XP: Browser Forward key 
    VK_BROWSER_REFRESH A8 Windows 2000/XP: Browser Refresh key 
    VK_BROWSER_STOP A9 Windows 2000/XP: Browser Stop key 
    VK_BROWSER_SEARCH AA Windows 2000/XP: Browser Search key 
    VK_BROWSER_FAVORITES AB Windows 2000/XP: Browser Favorites key 
    VK_BROWSER_HOME AC Windows 2000/XP: Browser Start and Home key 
    VK_VOLUME_MUTE AD Windows 2000/XP: Volume Mute key 
    VK_VOLUME_DOWN AE Windows 2000/XP: Volume Down key 
    VK_VOLUME_UP AF Windows 2000/XP: Volume Up key 
    VK_MEDIA_NEXT_TRACK B0 Windows 2000/XP: Next Track key 
    VK_MEDIA_PREV_TRACK B1 Windows 2000/XP: Previous Track key 
    VK_MEDIA_STOP B2 Windows 2000/XP: Stop Media key 
    VK_MEDIA_PLAY_PAUSE B3 Windows 2000/XP: Play/Pause Media key 
    VK_LAUNCH_MAIL B4 Windows 2000/XP: Start Mail key 
    VK_LAUNCH_MEDIA_SELECT B5 Windows 2000/XP: Select Media key 
    VK_LAUNCH_APP1 B6 Windows 2000/XP: Start Application 1 key 
    VK_LAUNCH_APP2 B7 Windows 2000/XP: Start Application 2 key 
    —  B8-B9 Reserved 
    VK_OEM_1 BA Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the ';:' key
     
    VK_OEM_PLUS BB Windows 2000/XP: For any country/region, the '+' key 
    VK_OEM_COMMA BC Windows 2000/XP: For any country/region, the ',' key 
    VK_OEM_MINUS BD Windows 2000/XP: For any country/region, the '-' key 
    VK_OEM_PERIOD BE Windows 2000/XP: For any country/region, the '.' key 
    VK_OEM_2 BF Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the '/?' key
     
    VK_OEM_3 C0 Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the '`~' key
     
    —  C1–D7 Reserved  
    —  D8–DA Unassigned 
    VK_OEM_4 DB Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the '[{' key
     
    VK_OEM_5 DC Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the '\|' key
     
    VK_OEM_6 DD Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the ']}' key
     
    VK_OEM_7 DE Used for miscellaneous characters; it can vary by keyboard. 
    Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key
     
    VK_OEM_8 DF Used for miscellaneous characters; it can vary by keyboard. 
    —  E0 Reserved 
     E1 OEM specific 
    VK_OEM_102 E2 Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard 
     E3–E4 OEM specific 
    VK_PROCESSKEY E5 Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key 
     E6 OEM specific 
    VK_PACKET E7 Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Re in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP 
    —  E8 Unassigned  
     E9–F5 OEM specific 
    VK_ATTN F6 Attn key 
    VK_CRSEL F7 CrSel key 
    VK_EXSEL F8 ExSel key 
    VK_EREOF F9 Erase EOF key 
    VK_PLAY FA Play key 
    VK_ZOOM FB Zoom key 
    VK_NONAME FC Reserved for future use  
    VK_PA1 FD PA1 key 
    VK_OEM_CLEAR FE Clear key 
      

  2.   

    msdn索引中键入Virtual-Key Codes
      

  3.   

    你可以添加一个wm_char的消息相应函数,当有按键输入时,他会传来一个字符,然后你可以看看他传来的这个字符的asc2码是多少,就可以判断了!!!
      

  4.   

    MSDN is very important!!!!!!!!!
      

  5.   

    //full表示计算全部的Control, Shift , Alt 按键状态,否则仅仅从lParam计算
    HOOKAPI(void) GetKeyInfo(WPARAM wParam, LPARAM lParam,KEYINFO *pKeyInfo, BOOL full)
    {
        GetKeyNameText(lParam, pKeyInfo->KeyName, sizeof(pKeyInfo->KeyName));
        pKeyInfo->KeyName[sizeof(pKeyInfo->KeyName)-1] = 0;
        
        pKeyInfo->RepeatCount = (WORD)(lParam & 0xffff);
        pKeyInfo->OEMScanCode = (WORD)((lParam & 0xff0000) >> 16);
        pKeyInfo->Extended      = ((lParam >> 24) & 1)==1;
        pKeyInfo->AltDown      = ((lParam >> 29) & 1)==1;
        pKeyInfo->PreviousDown= ((lParam >> 30) & 1)==1;
        pKeyInfo->Down          = ((lParam >> 31) & 1)==1;    //扩充内容如下
        pKeyInfo->ScanCode      = (WORD)wParam;
        if(full)
        {
            //以下得到扩充的Shift和Control状态
            pKeyInfo->ShiftDown   = ((GetKeyState(VK_SHIFT) & 0xff00) >> 8) == 0x00ff;
            pKeyInfo->ControlDown = ((GetKeyState(VK_CONTROL) & 0xff00) >> 8) == 0x00ff;
        //    pKeyInfo->AltDown     = ((GetKeyState(VK_MENU) & 0xff00) >> 8) == 0x00ff;        //以下根据键状态计算vFlag,vFlag和vKey正好对应CHotKeyCtrl中的对应值
            pKeyInfo->vFlag          = 0;
            if(pKeyInfo->Extended )        pKeyInfo->vFlag |= HOTKEYF_EXT;
            if(pKeyInfo->AltDown )        pKeyInfo->vFlag |= HOTKEYF_ALT;
            if(pKeyInfo->ControlDown)    pKeyInfo->vFlag |= HOTKEYF_CONTROL;
            if(pKeyInfo->ShiftDown )    pKeyInfo->vFlag |= HOTKEYF_SHIFT;
        }
    }以上函数中的wParam和lParam分别是键盘消息中的wParam和lParam