vc 父窗体和子窗体之间怎样传递参数?请教兄弟们 父窗体和子窗体各有两个编辑框A,B和按钮A,B;点击父窗体A按钮,显示B窗体,把父窗体的A编辑框的数据传在子窗体的A编辑矿中显示,点击子窗体B按钮返回父窗体,在父窗体的B编辑矿中,显示子窗体中B编辑矿的内容,怎么做兄弟们? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 父窗体中定义一全局变量,关闭子窗体前extern一下父窗体的变量 ,然后把子这窗体中B编辑框的值赋给变量. 在创建子窗口的时候构造函数传递父窗口指针this进去或者在子窗口中CFatherDlg *pDlg = (CFatherDlg *)GetParent(); 总结一下:1、在父窗体定义静态变量;2、传窗体的指针给子窗体;3、子窗体调用GetParent;4、向父窗体sendMessage;几类方法中,方法1最差,方法4最优;原因:方法1,使用静态变量,如果有多个子对象和父对象存在时,处理比较麻烦; 方法2, 传指针给子窗体,子窗体需要另外保存这个指针,实际子窗体可以调用GetParent获得; 方法3, 比方法2优,但与方法2都会与父窗体偶和比较深,假如子窗体与另一父窗体结合,此代码就编译通不过。 方法4,方法比较优,这样子窗体可以放到任何父窗体上,只要父窗体响应此消息即可。但是要多写几行代码,效率没有前几者高。 发送消息SendMessage:自定义消息:#define WM_REFRESH WM_USER+200点击子窗体按钮时,发送消息SendMessage(pfartherDialog->hWnd,WM_REFRESH,(WPARAM)m_Data, ,(LPARAM)nBufSize);pfartherDialog为父窗口指针,m_Data为子窗体编辑框中的数据,nBufSize为需要传送数据的大小。 通过消息就ok了,或者,通过setwindowlong,设置userdata 求救 运行一个mfc程序总是出现如下窗口 用BCG 如何动态设置 Tooltip 关于数据库取值的问题 关于CList删除节点的问题 **tangshiping(苇舞)来接分二 关于AddNew的问题 为什么我的tree只有双击结点前的+号才能收缩呢? GSM/CDMA的AT指令 希望加入到Windows开发中来 怎样在C#中用AT指令收发传真 利用DLL导出对话框后,在视图上以非模式创建它,之后,DLL对话框IDD_DLL_DIALOG1上的所有控件都失去了tab.. 关于判断鼠标是否在指定窗口中的问题!
关闭子窗体前extern一下父窗体的变量 ,
然后把子这窗体中B编辑框的值赋给变量.
1、在父窗体定义静态变量;
2、传窗体的指针给子窗体;
3、子窗体调用GetParent;
4、向父窗体sendMessage;几类方法中,方法1最差,方法4最优;
原因:方法1,使用静态变量,如果有多个子对象和父对象存在时,处理比较麻烦;
方法2, 传指针给子窗体,子窗体需要另外保存这个指针,实际子窗体可以调用GetParent获得;
方法3, 比方法2优,但与方法2都会与父窗体偶和比较深,假如子窗体与另一父窗体结合,此代码就编译通不过。
方法4,方法比较优,这样子窗体可以放到任何父窗体上,只要父窗体响应此消息即可。但是要多写几行代码,效率没有前几者高。
自定义消息:#define WM_REFRESH WM_USER+200
点击子窗体按钮时,发送消息SendMessage(pfartherDialog->hWnd,WM_REFRESH,(WPARAM)m_Data, ,(LPARAM)nBufSize);
pfartherDialog为父窗口指针,m_Data为子窗体编辑框中的数据,nBufSize为需要传送数据的大小。