如题

解决方案 »

  1.   

    我这样将输入的显示出来为什么出现怪码
    CString input,word;
    char mm;
    mm=nChar;
    input=mm;
    word=word+mm;
    gg.Format("%d",dd);
    MessageBox(gg);
      

  2.   

    在OnChar函数中
    我这样将输入的显示出来为什么出现怪码
    CString input,word;
    char mm;
    mm=nChar;
    input=mm;
    word=word+mm;
    MessageBox(word);
      

  3.   

    取之于网,用之于网。贡献一下代码了。
    判断是否为汉字的东东。
    short StrPick(char *szBuf,short s16Len)
    {
    UCHAR u8State=0;//0:全字状态 1:半字状态
    short i;
    for(i=0;i<s16Len && szBuf[i]!='\0';i++)
    {
    switch(u8State)
    {
    case 0:
    if(szBuf[i] & 0x80)
    u8State=1;
    break;
    case 1:
    u8State=0;
    break;
    }
    }
    if(u8State)
    {
    i--;
    // szBuf[i]='\0';//去除半个汉字
    }
    return i;
    }
      

  4.   

    另外,我也想问一下如果编码是UNICODE,或者其它的编码形式,怎么判断呢?
      

  5.   

    在OnChar函数中
    我这样将输入的显示出来为什么出现怪码
    CString input,word;
    char mm;
    mm=nChar;
    input=mm;
    word=word+mm;
    MessageBox(word);
    ========================================
    你是说输入一个中文字符吧. 
    你用中文输入法输入汉字的时候,你的按键会先经过输入法的过滤.
    因为中文是双字节编码,所以输入法会在确认了你的输入函汉字以后,发送两个字节编码给进程.也就是说你会收到两个WM_CHAR消息.  
    你现在只显示其中的一个字节,MessageBox当然不知道你要显示的是什么东西了
      

  6.   

    显示中文和你的程序没有多大关系的. 只要你是中文操作系统. 或者是支持中文的操作系统,他就可以显示中文了
    如果你的程序默认不是中文, MesasgeBoxEx可以允许你指定你的编码的代码页.