工控编程吧

标题: 上位机MFC如何将键盘的扫描码转换成虚拟键值 [打印本页]

作者: qq263946146    时间: 2019-8-20 10:38
标题: 上位机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. }
复制代码







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4