MFC的问题,大虾帮帮忙!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:27:40
在单文档里,我新建了一个基于对话框的类叫LineDlg,然后我想在view类里使用LineDlg中的数据,例如编辑框中输入的数据等等。
我在view类中 用lineDlg这个类定义了一个对象,不过得不到它的值,为什么??换成指针,同样不行!怎么做才能得到lineDlg中的值呢?。,,请高手指教。

首先确定的是这个linedlg是view类的一个成员变量 暂且把它命名为dlg
第一种方法:
首先你要吧dlg类里的比如说编辑框对象定义一个相应的变量(暂且命名为edit) 每次你需要使用dlg类里edit里的数据时输入如下语句
dlg.UpdateData(TRUE);
CString str=dlg.edit;
这样就可以吧编辑框里的数据存储到str里了
方法二:
找到对话框里编辑框的id 暂且命名为ID_EDIT,你可以通过如下语句得到里面存储的数据
CString str;
dlg.GetDlgItemText(ID_EDIT,str);
也可以吧编辑框里的数据存储到str里
方法三:
可以通过消息的方式 比如自定一个消息WM_EDIT;
然后通过发消息的方式传递数据
在对话框类里某个消息响应函数里写如下句子
CString str;
GetDlgItemText(ID_EDIT,str);
GetParent()->SendMessage(WM_EDIT,WPARAM(str),0);//WPARAM只有32位 量力而行
然后在view类里对WM_EDIT消息进行相应并且获得值
不过这个方法实现起来比较麻烦 而且限制性强 不推荐

当然获取控件数据信息的方式还有很多种 你可以参考一下孙鑫的深入详解C++(貌似是叫这个名字)