虛擬按鍵的總結及示例: (轉)

amyz發表於2007-08-17
虛擬按鍵的總結及示例: (轉)[@more@]

符號常量  十六進位制值 指定的滑鼠或鍵盤按鍵
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_CTAL  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_  29  SELECT 鍵
VK_EXECUTE  2B  EXECUTE 鍵
VK_SNAPSHOT  2C  PRINT SCREEN鍵(用於 3.0及以後版本)
VK_INSERT  2D  INS 鍵
VK_DELETE  2E  DEL 鍵
VK_HELP  2F  HELP 鍵
///////////////////////////////////////////////////
對於字母鍵和非小鍵盤上的數字鍵,直接在單引號中加入該鍵就行.
比如:a鍵:'A'
   1鍵:'1'
//////////////////////////////////////////////
VK_LWIN  5B  Left Windows 鍵 (自然鍵盤)
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_DIV  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);
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963419/,如需轉載,請註明出處,否則將追究法律責任。

相關文章