本人写了一个很简单的UNICODE版的对话框程序,主要是用来学习UNICODE的!界面包括两个EDIT BOX(IDC_EDIT1和IDC_EDIT2) 和两个 BUTTON(IDOK和IDIDCLOSE)。基本的功能就是:先在IDC_EDIT1输入两个字符(无论是英文字符还是中文字符 UNICODE ),之后按下IDOK BUTTON就会跳出消息框,显示第一个字符的UNICODE16进制编码。例如在英文输入法下,在IDC_EDIT1输入ui,则消息框显示75;在智能ABC输入法下输入你好,则消息框显示4f60;在全拼输入法下输入你好,则消息框也显示4f60!但奇怪的是:在微软拼音输入法下输入你好时,程序竟然执行MessageBox(hDlg,TEXT("user name length error!!"),TEXT("error"),MB_OK)!
在网上搜了输入法的编码标准没有相关信息,希望大家给点意见!!以下是代码的相关部分:
case   IDOK:
{nUserNameLength=GetDlgItemTexthDlg,IDC_EDIT1,buffer,EDITBOXLENGTH);//UNICODE中WCHAR/TCHAR为16
if (2!=nUserNameLength) //必须输入两个字符才使nUserNameLength为CHAR/TCHAR)
{   nShortKeystat=GetKeyState(VK_CAPITAL);
             if (1==nShortKeystat)
     {
MessageBox(hDlg,TEXT("大写锁定"),TEXT("error"),MB_OK);
     } 
      MessageBox(hDlg,TEXT("user name length error!!"),TEXT("error"),MB_OK);
     SetDlgItemText(hDlg,IDC_EDIT1,TEXT(""));
     return true;
         }
else 
     {
       _itow(buffer[0], &endptr,16);
      MessageBox(hDlg,&endptr,TEXT("show code"),MB_OK);
     }
           
}
return true;