读书人

关于GetWindowText有关问题获得的数

发布时间: 2012-04-06 12:22:24 作者: rapoo

关于GetWindowText问题,获得的数据是间隔的?
vs2008中:(貌似在vc6.0中就没有下面的问题)
有3个edit

C/C++ code
         int num1,num2,num3;    char ch1[15] = {'0'},ch2[15] = {'0'},ch3[15] = {'0'};    GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ch1, sizeof(ch1));    GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)ch2, sizeof(ch2));    num1 = atoi(ch1);    num2 = atoi(ch2);    num3 = num1 + num2;    itoa(num3, ch3, 10);    GetDlgItem(IDC_EDIT3)->SetWindowText((LPTSTR)ch3);

用GetWindowText得到的数据是间隔的,就是假如我在IDC_EDIT1中输入整数123,那么在ch1中,ch1[0]是1,ch1[1]是0,ch1[2]是2,ch1[3]是0,ch1[4]是3,以后都是0了,这是为什么呢?

[解决办法]
编码问题,vs2008缺省是unicode编码,一个字符2个字节
VS2008项目中有设置,改为多字符集的就和vc60一样了

[解决办法]
那就用 wchar_t 代替char;

读书人网 >C++

热点推荐