edit控件在接受中文字符时,OnChar函数只接受每个汉字第一个字符的ascii码,比如说 网络  这两个字,应该有四个字符组成,OnChar函数只接受第一,第三个字符,怎么回事啊。

解决方案 »

  1.   

    对啊!
    IsDBCSLeadByte()函数能检察一个字符是不是汉字的第一个字符
      

  2.   

    edit如何获得另外一半汉字字符。
      

  3.   

    当时edit还没出来,焦点在他的父窗口(CWnd),我要从父窗口onchar获得字符,然后创建并传递给他,怎么办。
      

  4.   

    我在改一个原有的grid控件,用cwnd写的,他首先选取一个cell,一旦有输入,就创建edit,并奖输入字符传递,英文没问题,中文就不行了。中文输入将消息拦截了,只有输入完毕,按空格 回车,字符一下子过去了,我只好在父窗口先取得字符,在穿的给edit 。
      

  5.   

    ::SendMessage(
        (HWND) hWnd,              // handle to destination window 
          WM_GETTEXT,               // message to send
          (WPARAM)55,          // number of characters to copy
          (LPARAM) sName           // text buffer
        );
    这个是得到CEdit的汉字
    不知道你是取汉字还是要CEdit上发送汉字?
      

  6.   

    CString strGB = "汉字" ;
    如果是往上传汉字,可以用
    for( int i = 0; i < strGB.GetLengh() ; i ++)
    SendMessage(hWnd,WM_CHAR,(short)strGB.GetAt(i),2);试试
      

  7.   

    yafizyh(亚斐) ,我现在也在改人家一个grid控件,不知道你有没有兴趣,大家交流一下!
    QQ:41570857
      

  8.   

    问题解决了,可不是很完美,对原有控件的功能多少有一点影响,好在问题不大,多谢各位了。
    在onchar函数中添加以下语句。
    if(pedit)
        SendMessage(pedit->m_hWnd,WM_CHAR,nChar);xuwj2000(海浪) 我没有QQ,不好意思。还有一个有意思的问题,用vc net 2003 的向导生成的dialog+edit程序,在调试模式下输入汉字,然后退出,输出大量的信息说有冲突,不解。