mfc中对话框访问view类成员变量
2011-11-09 14:14
162 查看
方法一:
1.在dlg.h中声明class CView;
2.在dlg.h中include MainFrm.h
3.在dlg.cpp中,includ doc.h,view.h(一定要包含doc.h且在view.h前,原因如下)
4.在函数中:
CView* m_pView = (CView*)((CMainFrame*) AfxGetMainWnd())->GetActiveView();
m_pView->m_nTmp = 20;
方法二:dlg是view的成员变量。
1.在dlg.h中声明class CView;
2..在dlg.cpp中,includ doc.h,view.h;
3.dlg.h中声明CView *m_pView;
4.dlg.cpp中,m_pView = NULL;
5.在view类中调用dlg前,dlg.m_pView = this;
6.在dlg的函数中直接使用m_pView即可。
一定要包含doc.h且在view.h前,原因
1.view.cpp的头几行,它首先包含了doc.h,然后才包含view.h。这样就等于是包含了doc.h。但如果你在其他一个文件中只包含view.h的话,肯定会出错。
2.在程序的InitialInstance中 有CSingleDocTemplate 或者CMultiDocTemplate的对象 ,框架,DOC,VIEW都是在这个时候创建的。VIEW中有一个m_pDocumnet成员,在创建VIEW时付的植。就这样。
1.在dlg.h中声明class CView;
2.在dlg.h中include MainFrm.h
3.在dlg.cpp中,includ doc.h,view.h(一定要包含doc.h且在view.h前,原因如下)
4.在函数中:
CView* m_pView = (CView*)((CMainFrame*) AfxGetMainWnd())->GetActiveView();
m_pView->m_nTmp = 20;
方法二:dlg是view的成员变量。
1.在dlg.h中声明class CView;
2..在dlg.cpp中,includ doc.h,view.h;
3.dlg.h中声明CView *m_pView;
4.dlg.cpp中,m_pView = NULL;
5.在view类中调用dlg前,dlg.m_pView = this;
6.在dlg的函数中直接使用m_pView即可。
一定要包含doc.h且在view.h前,原因
1.view.cpp的头几行,它首先包含了doc.h,然后才包含view.h。这样就等于是包含了doc.h。但如果你在其他一个文件中只包含view.h的话,肯定会出错。
2.在程序的InitialInstance中 有CSingleDocTemplate 或者CMultiDocTemplate的对象 ,框架,DOC,VIEW都是在这个时候创建的。VIEW中有一个m_pDocumnet成员,在创建VIEW时付的植。就这样。
相关文章推荐
- MFC中对话框之间或非对话框与对话框之间的成员变量的访问,获得各类句柄的总结
- [MFC]父子对话框互调成员变量
- MFC 如何将自定义按钮,添加到对话框的成员变量中?
- Java 多线程(四) 多线程访问成员变量与局部变量
- 反射 访问成员变量
- C++成员变量、函数修饰符与访问权限
- MFC 对话框控件和变量类型
- 多态 多态中的成员(成员变量、构造方法、成员方法、静态方法)访问特点
- 关于空指针类型的类变量的成员函数访问的问题
- 不用友元,访问类的私有成员变量的方法
- 不用友元,访问类的私有成员变量的方法
- C++中静态成员函数访问成员变量问题
- 默认的成员变量的访问权限[Java语言]
- 通过setxxx()和getxxx()方法对类中的私有成员变量进行赋值和访问
- java成员变量和方法的public等访问限定符的访问权限
- MFC子线程访问主线程对话框程序的控件对象
- MFC---一个对话框,初始时没有OnInitDialog()函数,我们如何初始化其数据成员及函数
- Runtime 访问隐藏成员变量和成员方法
- VS2013/MFC编程入门之七(对话框:创建对话框类和添加控件变量)
- 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围