□□如何在其它类中更新对话框中CEDIT控件的显示信息

时间:2021-09-11 05:47:50
我在其它类中定义了对话框对象,并将编辑控制关联的CString变量放在一个public函数中,以供其它类调用更新,却不成功,向诸位请教

9 个解决方案

#1


你在其他类里调用这个对话框的UpdateData()啊,它好象是public的嘛。不就更新了吗?

#2


提问者:当然,public函数中已经有了UpdateData(),可就是不成功

#3


代码贴出来看看!具体问题具体分析。
模式对话框下,只有在DoModal过程中调用的UpdataData()才有用。
无模式情况下,可以调用UpdataData()更新控件内容。

建议用控件ID号,对其直接进行控制。

#4


那你GetWindowText(),SetWindowText().

#5


得到对话框里控件的指针,用上面两个函数直接更新。。。还不行?那我也不知道。。。

#6


我觉得如果你的对话框比较复杂,最好在对话框类中给控件填加Control型的就量,这样可以随时控制控件的状态,并且控件之间的变化不会相互影响。不像UpdateData(true/false)一执行,所有的控件都受影响!
当然,你如果不想填加CONTROL类型的变量,你也可以直接去控制控件,方法如下!
比如一个编辑框的ID为ID_EDIT,
GetDlgItem(ID_EDIT)->SetWindowText("asdasda");//设置控件的CAPTION属性
GetDlgItem(ID_EDIT)->GetWindowText("asdasda");//获得控件的CAPTION属性

#7


忘了说一点,一般对控件的操作最好是在Dlg执行DoModal()之后,执行OnCancle()或者
OnOK()之前!否则可能会出错吧!因为那时候对话框资源已经不存在了!

#8


是的,不推荐在对话框外部操做控件,不符合C++封装的习惯,容易出错。

#9


问题总结:
    尽量不要在别的类中操作对话框中的控件和变量,我最后改变策略,在对话中从其它类中得到数据

Tue(玄天) 15   mingbao(★情已逝★) 15   goodboyyxh(杭州烘烘)  15  khwidesea(阔海) 5

#1


你在其他类里调用这个对话框的UpdateData()啊,它好象是public的嘛。不就更新了吗?

#2


提问者:当然,public函数中已经有了UpdateData(),可就是不成功

#3


代码贴出来看看!具体问题具体分析。
模式对话框下,只有在DoModal过程中调用的UpdataData()才有用。
无模式情况下,可以调用UpdataData()更新控件内容。

建议用控件ID号,对其直接进行控制。

#4


那你GetWindowText(),SetWindowText().

#5


得到对话框里控件的指针,用上面两个函数直接更新。。。还不行?那我也不知道。。。

#6


我觉得如果你的对话框比较复杂,最好在对话框类中给控件填加Control型的就量,这样可以随时控制控件的状态,并且控件之间的变化不会相互影响。不像UpdateData(true/false)一执行,所有的控件都受影响!
当然,你如果不想填加CONTROL类型的变量,你也可以直接去控制控件,方法如下!
比如一个编辑框的ID为ID_EDIT,
GetDlgItem(ID_EDIT)->SetWindowText("asdasda");//设置控件的CAPTION属性
GetDlgItem(ID_EDIT)->GetWindowText("asdasda");//获得控件的CAPTION属性

#7


忘了说一点,一般对控件的操作最好是在Dlg执行DoModal()之后,执行OnCancle()或者
OnOK()之前!否则可能会出错吧!因为那时候对话框资源已经不存在了!

#8


是的,不推荐在对话框外部操做控件,不符合C++封装的习惯,容易出错。

#9


问题总结:
    尽量不要在别的类中操作对话框中的控件和变量,我最后改变策略,在对话中从其它类中得到数据

Tue(玄天) 15   mingbao(★情已逝★) 15   goodboyyxh(杭州烘烘)  15  khwidesea(阔海) 5