做windows开发有段时间了,但项目多数都不没涉及到键盘事件的处理。现在用到突然忘了。
处理键盘可以通过两种方式:
1. hook 技术侦测。 这里就先不介绍,有机会在整理。
2. 通过重载PreTranslateMessage函数也可以实现。
BOOL CScanDemoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYUP && (pMsg->wParam ==VK_SCAN_A||pMsg->wParam ==VK_SCAN_B ) )
{
//deal with the Scan function
RETAILMSG(1,(L"Start to Scan barcode \r\n"));
if(StartScan())
{
(CButton*)GetDlgItem(IDC_BTN_PRINT)->EnableWindow(TRUE);
}
else
(CButton*)GetDlgItem(IDC_BTN_PRINT)->EnableWindow(FALSE);
UpdateData(FALSE);
}
return CDialog::PreTranslateMessage(pMsg);
}