ntjm.net
当前位置:首页 >> mFC对话框之间的传值 >>

mFC对话框之间的传值

可以在父窗口中增加两个cedit控件,分别是定义为m_edit1和m_edit2,把前者输入的值传到弹出子类窗口的m_edit中显示,然后在子类的编辑框中重新输入其它值(不输也行),在关闭子类窗口时,把该值回传给父类窗口的m_edit2显示:父类

在你要显示的那个对话框里面定义2个属性.在当前对话框实例化另一个对话框的时候把值赋过去就行了.

在B中定义一个同样属性的类成员变量NUM_b,然后在A的对话框响应函数中:CBDialog b;b.NUM_b = NUM1;b.DoModal();

先给子对话框的编辑框添加成员变量:cstring m_str;然后在子对话框的oninitdialog()中添加如下代码:getparent()->getdlgitemtext(idc_edit1, m_str); //假设父对话框的编辑框id为idc_edit1

被传值对话框类中定义一个成员变量在对话框创建的时候给被传值对话框对象的成员变量赋值就可以实现传值了.主对话框的某函数(){ CDialog c1; c1.setVar(要传的值);}然后就可以对对象c1进行操作了

1.构造函数,不知道你的B对话框是模式还是非模式,还有显示的时候是创建B还是已经创建了B.A中编辑框关联一个CString变量 m_text; 然后显示B的时候先UpdateData(TRUE); B中增加变量const CString &m_Atext; 然后修改B的构造函数增加一个参数B::B(const CString &Atext):m_Atext(Atext),调用B构造的时候传参数m_text就是了.更多办法,得知道你B用的是模式还是非模式的对话框,显示时创建没.2.消息发送,不知道你对消息传值有何理解,暂时不长篇了.

你说的控件是指编辑框吧.在oninitdialog()中添加:updatedata(true);m_edit=……;就可以了

可以,设置为友元就可以直接操作,只要B能得到A的窗口指针(这个很容易的,GetParent就是了).刷新就直接调用A的窗口成员函数,RedrawWindow就可以了

任何一个对话框都对应一个对话框类对象,只要获取相应对话框类对象或对象指针就可以通过相应对话框类对象或对象指针来撮撮其中的成员.

使用变量通过引用来传递,视图类和对话框都拥有一样的需要传递的变量,譬如视图类传过去对话框的时候,在对话框设置一个SetData的函数,参数就是你需要传递的变量的引用,专门用来在现实之前设置对话框对应的变量的值的,在domodel之前先调用SetData来设置相应的值,对话框传递到视图类也是一样,在销毁对话框之前,把视图类对应的变量的引用传过去,然后在销毁之前改变对应的引用的值,这样就可以了,不明在hi我

相关文档
tuchengsm.com | wkbx.net | dbpj.net | jmfs.net | sichuansong.com | 网站首页 | 网站地图
All rights reserved Powered by www.ntjm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com