VC响应键盘事件(组合键)

来源:互联网 发布:qq淘宝客 编辑:程序博客网 时间:2024/06/05 11:28

如何在vc中添加键盘响应事件

1.        ClassView中Add Windows Message Handle 添加WM-KEYDOWN和WM-KEYUP,AddVirtural Functions添加PreTranslateMessage

2.        BOOL **Dlg::PreTranslateMessage(MSG* pMsg)中添加

{  

      if (pMsg-> message == WM_KEYDOWN)

            {

                    if(pMsg-> wParam== VK_RETURN)//直接用虚码代替就可以响应所指键

                    SetInfo(WDK_OK);     //回车对应ok

            }

      if (pMsg-> message == WM_KEYDOWN)

            {

                    if(pMsg-> wParam== VK_BACK)//直接用虚码代替就可以响应所指键

                    SetInfo(WDK_C);        //backspace对应删除

            }

      return CDialog::PreTranslateMessage(pMsg);

}

 

3.        虚拟值

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 键

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键

对于非小键盘上的数字键和字母键,直接在单引号中加入该键就行

比如: a 键: 'A'

1 键: '1'

 

VK_LWIN                 5B   Left Windows 键(Microsoft自然键盘)

VK_RWIN                 5C Right Windows 键 (Microsoft自然键盘)

VK_APPS                 5D Applications 键 (Microsoft自然键盘)

VK_NUMPAD0         60   数字小键盘上的 0 键

VK_NUMPAD1         61    数字小键盘上的 1键

VK_NUMPAD2         62   数字小键盘上的 2 键

VK_NUMPAD3         63   数字小键盘上的 3 键

VK_NUMPAD4         64   数字小键盘上的 4 键

VK_NUMPAD5         65   数字小键盘上的 5 键

VK_NUMPAD6         66   数字小键盘上的 6 键

VK_NUMPAD7         67   数字小键盘上的 7 键

VK_NUMPAD8         68   数字小键盘上的 8 键

VK_NUMPAD9         69   数字小键盘上的 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.        组合键的用法:(本例响应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);

}

原创粉丝点击