龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC学习:虚拟按键的总结及示例(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
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
  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);
  }

精彩图集

赞助商链接