为了账号安全,请及时绑定邮箱和手机立即绑定

结果显示的还是原来的内容,究竟为什么呢?

结果显示的还是原来的内容,究竟为什么呢?

C
哆啦的时光机 2023-03-05 18:13:45
Sets the caption or text of a control owned by a window or dialog box.void SetDlgItemText(int nID,LPCTSTR lpszString );请问一下,SetDlgItemText是如何改变控件的内容的。我在VS2008里面的OnCreate函数调用这个函数:SetDlgItemTextW(IDC_INFO2, str);经过调试,str的值OK,就是没有设置成功。另外,为什么我在构造函数里面调用这条函数的时候会出现很严重的后果呢---断言失败!如果我设置一个变量来修改的话,就可以!一楼回答很靠谱!不过“呼叫UpdateData()函数进行更新”还是没有用!我在书上看到一句话“对话框数据成员的初始化工作一般在其构造函数进行,而对话框和控件的初始化则在OnInitDialog()函数中完成”。因为我有两种方法,如果为控件建立一个变量,例如m_strName,则在构造函数中设置它的值。如果要使用SetDlgItemTextW这条函数,则在OnInitDialog()函数中调用。
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

SetDlgItemText()设置过后要呼叫UpdateData()函数进行更新,否则显示不出来。至于在构造函数里使用这个东西呢,要看你那个对象是否已经完全构造出来了,一般是不放在构造函数里的,构造函数一般只用于成员的初始化或者其他啥的.
依照你的补充,这样你可以在对话框的类中进行这项工作,貌似无法从其他的类中进行?如果要从其他类中进行的话就必须定义一个全局变量?

查看完整回答
反对 回复 2023-03-08
?
慕仙森

TA贡献1827条经验 获得超8个赞

SetDlgItemText函数的功能:设置对话框中控件的文本和标题。
  使用方法参考如下:
  itoa(str33, str3, 10);
  SetDlgItemText ( hwnd , IDC_EDIT3 , str3) ;
  其中str33为int型的数字,str3为字符串指针。
  第一句代码作用:用itoa函数将int型的数字str33转化为字符串,并且将字符串放到str3指针指向的区域。
  str3为字符串指针,里面包含着文本内容。
  第二句代码作用就是将str3的内容显示到ID为IDC_EDIT3的控件。

查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号