MFC连接刷卡器后
刷卡器,就是刷IC卡后,能在TXT文本中直接输出卡号的,比如我卡号123,就在TXT文本输出123,
但是在MFC中
BOOL CDengLuDlg::PreTranslateMessage(MSG* pMsg)
{
WPARAM wParam;
wParam=pMsg->wParam;
switch(wParam)
{
case 0x30: CardNumber+="0";break;//0x30~0x39代表数字0~9
case 0x31: CardNumber+="1";break;
case 0x32: CardNumber+="2";break;
case 0x33: CardNumber+="3";break;
case 0x34: CardNumber+="4";break;
case 0x35: CardNumber+="5";break;
case 0x36: CardNumber+="6";break;
case 0x37: CardNumber+="7";break;
case 0x38: CardNumber+="8";break;case 0x39: CardNumber+="9";break; case VK_RETURN: AfxMessageBox(CardNumber); return true break;
default: break;
}
return CDialog::PreTranslateMessage(pMsg);
}就会发现刷卡后读出的卡号是111222333,就是每一位数字都重复3次,我知道如何处理,但不知道为什么会这样,求解释???
[解决办法]
[解决办法]
那要看上下位机具体协议是怎么设置的,
是不是有握手也读了
[解决办法]
既然能在TXT文本中直接输出卡号,那么你直接放个编辑控件,让焦点在这个编辑控件里(就是光标在这个控件里),然后刷IC卡,这时,编辑控件应该能显示出数据(前提是你得屏蔽PreTranslateMessage这个消息,不然不好使)
[解决办法]
刷卡器和你MFC间的协议,弄清楚先
[解决办法]
既然编辑框已读出正确的值,那你还想怎么做.你要做的就是在刷IC卡前先让焦点在编辑框上,刷IC卡后再取出数据进行处理