首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC联接刷卡器后

2012-12-14 
MFC连接刷卡器后刷卡器,就是刷IC卡后,能在TXT文本中直接输出卡号的,比如我卡号123,就在TXT文本输出123,但

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次,我知道如何处理,但不知道为什么会这样,求解释???
[最优解释]

引用:
那要看上下位机具体协议是怎么设置的,
是不是有握手也读了
握手?
[其他解释]
既然编辑框已读出正确的值,那你还想怎么做.你要做的就是在刷IC卡前先让焦点在编辑框上,刷IC卡后再取出数据进行处理
[其他解释]
引用:
刷卡器和你MFC间的协议,弄清楚先
。。。。这真不懂了,没什么协议也不需要驱动,刷一下自动输出卡号
[其他解释]
既然能在TXT文本中直接输出卡号,那么你直接放个编辑控件,让焦点在这个编辑控件里(就是光标在这个控件里),然后刷IC卡,这时,编辑控件应该能显示出数据(前提是你得屏蔽PreTranslateMessage这个消息,不然不好使)
[其他解释]
引用:
既然能在TXT文本中直接输出卡号,那么你直接放个编辑控件,让焦点在这个编辑控件里(就是光标在这个控件里),然后刷IC卡,这时,编辑控件应该能显示出数据(前提是你得屏蔽PreTranslateMessage这个消息,不然不好使)
在编辑框中读取时正确的
[其他解释]
那要看上下位机具体协议是怎么设置的,
是不是有握手也读了
[其他解释]
刷卡器和你MFC间的协议,弄清楚先
[其他解释]
过滤 WM_CHAR
[其他解释]
引用:
既然编辑框已读出正确的值,那你还想怎么做.你要做的就是在刷IC卡前先让焦点在编辑框上,刷IC卡后再取出数据进行处理
就是不让卡号显示出来呀,刷卡登陆界面用的,另外我试过GetDlgItem(XXX)->SetFocus(),让控件获取焦点,也没有光标闪烁?
[其他解释]
引用:
过滤 WM_CHAR
过滤WM_CHAR??为什么?
[其他解释]
你是不是想把卡号隐藏起来,就是象输入密码那样显示星号,如果是这样,你把编辑框设成密码属性就行了,直接把卡号显示成星号,这样别人看不到卡号同时也知道刷卡成功.
[其他解释]
null
[其他解释]
null

热点排行