小弟用如下函数想实现把条码机(USB接口)读到的内容显示在List Control中,但是现在碰到一些问题。List Control中只能显示条码的第一个数,如果有12行它就每行显示一个数。而且怎么在程序中判断是键盘输入还是条码机输入呢?请高手帮帮忙。
BOOL CTestView::PreTranslateMessage(MSG* pMsg) 
{
    if(pMsg->message==WM_CHAR) 
{
   CString s;
s=pMsg->wParam;
m_ListCtrl.SetItemText(m2,1,s);
m2++;
}
return CFormView::PreTranslateMessage(pMsg);
}

解决方案 »

  1.   

    m_ListCtrl.SetItemText(m2,1,s);
    m2++;
    这么写,自然是每行一个字符了。m2每接收一个字符就增加啊。
      

  2.   

    比如条形码一共有10位
    在view类里面添加成员CString m_strItemText,int m_nCounter,在构造里面初始化为NULL和0BOOL CTestView::PreTranslateMessage(MSG* pMsg) 
    {
        if(pMsg->message==WM_CHAR) 
    {
       m_strItemText += pMsg->wParam;
       if(++m_nCounter >= 10);
        {
           m_ListCtrl.SetItemText(m2,1,m_strItemText);
           m_nCounter = 0;
           m_strItemText=NULL;
           m2++;     
        }}
    return CFormView::PreTranslateMessage(pMsg);
    }
      

  3.   

    m_strItemText=NULL;
    ===============>
    m_strItemText="";随手写的,没有调试