程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC學習:虛擬按鍵的總結及示例

VC學習:虛擬按鍵的總結及示例

編輯:vc教程

  符號常量 十六進制值 指定的鼠標或鍵盤按鍵
  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);
  }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved