mfc捕获按键 ( 包括数字键,字母键,F1-F12 )

*作为一个开发人员,坚持写自己的代码 )
效果:当前按键会实时显示在窗口(IDC_EDIT1)中

BOOL Cset_Camera::PreTranslateMessage(MSG* pMsg) /// 热键
{
    // 数字键
    if (pMsg->message==WM_CHAR ){
        char ch = (char)pMsg->wParam;  //比如按下大键盘数字1或者小键盘数字1
        CString strShortCut = (CString)ch;//此时strShortCut = L"1";
        SetDlgItemText(IDC_EDIT1, "");
    }
    
    //F1-F12
    CString str;
    if (pMsg->wParam>=0x70 && pMsg->wParam<=0x7B)
    {
     if (pMsg->wParam>=0x70 && pMsg->wParam<=0x78)//F1-F9
      str.Format("F%c",pMsg->wParam-0x70+'1');
     else if (pMsg->wParam>=0x79 && pMsg->wParam<=0x7B)//F10-F12
      str.Format("F1%c",pMsg->wParam-0x79+'0');
       
     SetDlgItemText(IDC_EDIT1, str);
    }
    //A-Z  字母键
    if (pMsg->wParam>='A' && pMsg->wParam<='Z')
    {
        str.Format("%c",pMsg->wParam-'A'+'a');
        SetDlgItemText(IDC_EDIT1, str);
    }
  
  return CDialogEx::PreTranslateMessage(pMsg);
}
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页