虚拟按键的总结及示例

类别:软件工程 点击:0 评论:0 推荐:

符号常量  十六进制值 指定的鼠标或键盘按键
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键(用于Windows 3.0及以后版本)
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 键

举例:

(一)响应单独的按键:
先添加PreTranslateMessage()(响应WM_CHAR)也是同样的效果,因为本例只捕捉键盘)
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
 // TODO: Add your specialized code here and/or call the base class
 if (pMsg->message == WM_KEYDOWN)
 {
              if(pMsg->wParam=='M')//直接用上面的虚码代替就可以响应所指键
  MessageBox("hello");//如果按下M键弹出消息.比如想当按下小键盘1时
                                      //弹出就用VK_NUMPAD1代替'M'
         }
 return CDialog::PreTranslateMessage(pMsg);
}

(二)组合键的用法:(本例响应Ctrl+X键)
BOOL CMydilog::PreTranslateMessage(MSG* pMsg)
{
 // TODO: Add your specialized code here and/or call the base class
 
 if (pMsg->message == WM_KEYDOWN)
 {
  switch (pMsg->wParam)
  {  
  case VK_ESCAPE:
   SetFocus ();
   return TRUE;
  case 'X':
   if(::GetKeyState(VK_CONTROL) < 0)//如果是Shift+X这里就
                                                             //改成VK_SHIFT
    MessageBox("hello");
   return TRUE;
   
  }
 }
 return CDialog::PreTranslateMessage(pMsg);
}

作者Blog:http://blog.csdn.net/zhucde/

本文地址:http://com.8s8s.com/it/it33806.htm