通用键盘设备(包括读卡器等被模拟为键盘设备),在windows系统下,理解为通过虚拟键盘消息系统(MSG* pMsg)来确认是否键盘相关消息(检查键值,如(pMsg->message == WM_KEYDOWN),并进一步处理里面的字符(pMsg->wParam == VK_RETURN||VK_ESCAPE)。
如果传递的字符不方便或不需要在程序中显示出来(比如设置控件(如IDC_Edit1)的属性为只读),那么需要自己在MFC框架前捕获消息。
可以重载虚函数BOOL xxx::PreTranslateMessage(MSG* pMsg),后面来一个字符一个字符捕获自己来决定用途。
如果,要对字符串格式做宽字符转换,strTemp.Format(_T("%x"),pMsg->wParam);
可以建立一个Vector,把捕获的字符放进去,用的时候提取出来。
如:
vector<int>::iterator theIterator;
vecTemp.push_back(pMsg->wParam);
vecTemp.pop_back();
vecTemp.clear();
以及对于标准STL的遍历,可以用iterator -
for( theIterator = vecTemp.begin(); theIterator != vecTemp.end(); theIterator++ )
例程在二楼。