通用鍵盤設備(包括讀卡器等被模擬爲鍵盤設備),在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++ )
例程在二樓。