USB读出的数据用char inputReport[8]保存,但是在用sendmessage发送的时候txt接受的却是是那么都没有。这是为什么?下面是代码:
SendMessage(hEdit, EM_SETSEL, (WPARAM)-1, (LPARAM)-1);
        SendMessage(hEdit, WM_CHAR, 9,(LPARAM)inputMessage);
inputReport已经看了,不是空。第二位有数。现在是要吧这个数据发送到消息堆栈,任何程序就可以接受。这个该怎么做啊?大侠们帮帮忙!谢谢了!

解决方案 »

  1.   

    inputMessage参数应该放到WPARAM的位置吧
      

  2.   

    是不是因为hEdit不是焦点窗口?
      

  3.   

    其实你可以在USB读出数据以后直接用GetDlgItem(/*hEdit控件ID*/)->SetWindowText()来设置hEdit控件的文本内容。
      

  4.   


    WM_CHAR的话 每次只能发送一个字符 (wParam)既然有窗口句柄 直接用 SetWindowText(hEdit, szText); 
    注意数据要转换为ASC码
      

  5.   

    是窗口焦点,这部分的完整代码您看看:
            if(hWnd)
             {
                 HWND hEdit = ::FindWindowEx(hWnd, NULL, _T("Edit"), NULL);
     TCHAR szTmp[8] = {0};
                 if(hEdit)
                 {
    int count = sizeof(inputReport)/sizeof(char);
                    for(size_t i = 0; i != count; i++)
                     {  
                       szTmp[i] = inputReport[i];
                     }
      //SendMessage(hEdit, EM_SETSEL, (WPARAM)-1, (LPARAM)-1);
         //           SendMessage(hEdit, WM_CHAR,9,(WPARAM)szTmp);
    SetWindowText(hEdit,szTmp);
                 }
              }
      }
    }
    pDlg->CloseKeypad(hDevice); //关闭设备
    }
      

  6.   

    我要是吧WPARAM换成9话传的是乱码,对了device不是以ASCII穿的,是以hid那个什么码穿的。本来已经做好了,我读出来然后数据在inputreport的第二位,我将其转换为ASCII码然后显示。但是经理说不用转换说转换会出错。直接扔到消息堆栈里,让text显示,我就想着那不就是用sendmessage或者postmessage。不知道我这样想对不对。SetWindowText也不能显示。
      

  7.   

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms646276(v=vs.85).aspx看下WM_CHAR的说明,wParam 是字符, 9不可见