QQ登录

只需一步,快速开始

上位机MFC如何将键盘的扫描码转换成虚拟键值

[ 复制链接 ]
扫描码和虚拟键值,实际上他们一个是硬件定义的,
一个是软件定义的,之间的关系就是一个映射关系,
我们可以通过代码来实现转换。
添加编辑框控件IDC_TEXT1,IDC_TEXT2。
然后可以使用下面的代码来实现

  1. BOOL CDemoDlg::PreTranslateMessage(MSG* pMsg)
  2. {
  3.         if (pMsg->message == WM_KEYDOWN)
  4.         {
  5.                 //获得键盘扫描码
  6.                 UINT nScanCode = HIWORD(pMsg->lParam);

  7.                 SetDlgItemInt(IDC_TEXT1, nScanCode, FALSE);

  8.                 //获得虚拟键值
  9.                 UINT nVKCode = ::MapVirtualKey(nScanCode, 3);

  10.                 SetDlgItemInt(IDC_TEXT2, nVKCode, FALSE);       
  11.         }
  12.        
  13.         return CDialog::PreTranslateMessage(pMsg);
  14. }
复制代码


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索