首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么读取对话框的内容?

2012-04-05 
如何读取对话框的内容??我是个初学者,用vs2005新建了一个MFC项目,有三个编辑框,一个按钮,当按下按钮时,消

如何读取对话框的内容??
我是个初学者,用vs2005新建了一个MFC项目,有三个编辑框,一个按钮,当按下按钮时,消息处理函数将编辑框1和2的内容相加,在编辑框3中显示,
我的消息响应代码如下:(参考孙鑫老师的教程)

  int num1,num2,num3;
  char ch1[10]={NULL},ch2[10]={NULL},ch3[10]={NULL};

  GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ch1,10);//读取编辑框1内容
  GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)ch2,10);//读取编辑框2内容

  num1=atoi(ch1);//数据变换 设置断点1
  num2=atoi(ch2);//断点2
  num3=num1+num2;//断点3
 // num3=256;
  itoa(num3,ch3,10);//10进制 断点4
   
  GetDlgItem(IDC_EDIT3)->SetWindowText((LPTSTR)ch3);//我发现在这里如果将ch3改成ch1,ch2均能显示编辑框1和2的内容,

调试到断点1时:ch1 内容为
[0]49 '1'char
[1]0char
[2]53 '5'char
[3]0char
[4]54 '6'char
[5]0char
[6]0char
[7]0char
[8]0char
[9]0char
  ch2 内容为
  [0]49 '1'char
[1]0char
[2]53 '5'char
[3]0char
[4]51 '3'char
[5]0char
[6]0char
[7]0char
[8]0char
[9]0char
ch1和ch2的内容均不为预料中的ch1[0]=1,ch1[1]=5,ch1[2]=6,ch2[0]=1,ch2[1]=5,ch2[2]=3,它们中间怎么隔着一个字符呢,搞不明白????

调试到断点2时,num1 = 1;只等于1,我很纳闷……
调试到断点3时,num2 = 1;


恳请高手赐教,本人初学者,没分,见谅啦!





[解决办法]
你的项目是UNICODE的吧.
你改成非UNICODE的试试,或者将char改成TCHAR,atoi改成_ttoi.

热点排行