子对话框中的响应函数如何调用父文档类中的变量? 我用的是单文档类,在单文档中view类中调用一个自定义的的对话框,在对话框中我想调用父类view中的一个变量,应该怎么弄?((CFatherDlg*)(CDialog*)GetParent->……好像不行吧,这个父类是对话框,但我的程序中子类的父类是个单文档view类啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在构造子类完成后,将父类指针通过函数传递到子类的对象中去不就行了比如CDialog dlg;dlg.m_pParent=this;dlg.DoModal(); 得到view类的指针就可以了,头上加#include "MainFrm.h" (CXXXView*)(AfxGetMainWnd()->GetActiveView()) 只需要调用一个变量很容易的啦!在CFatherDlg 定义一个和它一样的类型的变量比如 int t;在XXXView中的是:int a;在需要弹出对话框那里加上下面几句就行了:CFatherDlg dlg;dlg.t=a;dlg.DoModal();当然也可以在CFatherDlg 中定义XXXView类的一个指针:XXXView *view;CFatherDlg dlg;dlg.view=this;dlg.DoModal();在CFatherDlg 中就可以用view->...调用了 不行啊,我试过了,CView *p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView());p->……里面没有我自定义的响应函数以及变量出现啊?你能不能再说的具体点?谢谢 在父类中,创建子对话框时CDialog dlg; dlg.m_pParent=this; dlg.DoModal(); 然后在子对话框中就能用GetParent()得到父类View的指针了 CView *p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView()); 这句这样写:(CImageProcessView*)p=((CImageProcessView*)(AfxGetMainWnd()->GetActiveView())); p-> 就可以调用了,我也刚犯了这个低级失误。不要忘了加入view的头文件 上面的多了个括号,CView *p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView()); 这句这样写: (CImageProcessView*)p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView()); p-> 就可以调用了,我也刚犯了这个低级失误。 不要忘了加入view的头文件 dlg.m_m_pParentWnd是保护类成员,在父类view中没法赋值啊。 还用GetParent()这个试试他返回的是CWnd* 你的view也是CWnd啊试试这样写:((Cxxxxview*)GetParent())->Cxxxxview 为你的具体的view类名在你的对话框类头文件中包含你的view类的头文件 确保你调用的函数应该是public 的 CComboBox下拉按钮的高度是多少呢? 如何保存网页中的文字到xml文件中 VC++线程问题 如何把一个用VC++的开发的控制台程序发布出来? 100送上求如何动态生成IWebBrowser 高分求一个不用AI的五子棋程序(或其它小游戏) 关于怎样控制鼠标的问题???? 将已经写好的mfc小程序想封装成动态库,并调用 请问如何反复添加Colume,然后反复删除CListCtrl对象的所有列(当然包括所有内容)? 在基类外定义的函数如何访问视类函数? 在继承Cwnd的新类中怎样实现消息响应? 在VC6中,单文档程序中转换为基于对话框的程序 的问题.
比如
CDialog dlg;
dlg.m_pParent=this;
dlg.DoModal();
头上加#include "MainFrm.h"
(CXXXView*)(AfxGetMainWnd()->GetActiveView())
在需要弹出对话框那里加上下面几句就行了:
CFatherDlg dlg;
dlg.t=a;
dlg.DoModal();
当然也可以在CFatherDlg 中定义XXXView类的一个指针:XXXView *view;
CFatherDlg dlg;
dlg.view=this;
dlg.DoModal();在CFatherDlg 中就可以用view->...调用了
不行啊,我试过了,CView *p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView());
p->……里面没有我自定义的响应函数以及变量出现啊?你能不能再说的具体点?谢谢
dlg.m_pParent=this;
dlg.DoModal(); 然后在子对话框中就能用GetParent()得到父类View的指针了
(CImageProcessView*)p=((CImageProcessView*)(AfxGetMainWnd()->GetActiveView()));
p->
就可以调用了,我也刚犯了这个低级失误。不要忘了加入view的头文件
(CImageProcessView*)p=(CImageProcessView*)(AfxGetMainWnd()->GetActiveView());
p->
就可以调用了,我也刚犯了这个低级失误。 不要忘了加入view的头文件
dlg.m_m_pParentWnd是保护类成员,在父类view中没法赋值啊。
他返回的是CWnd* 你的view也是CWnd啊试试这样写:((Cxxxxview*)GetParent())->Cxxxxview 为你的具体的view类名在你的对话框类头文件中包含你的view类的头文件