(急)一个最基本的MFC问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:38:21
我要在框架(菜单)类中的某一个函数中调用view类中的
一个自己定义的成员函数,要怎么做呢?直接写它说找不到这个函数,又不能加view的头文件,怎么办那?

在MainFrm.h中加 "NAMEView.h"
在NNAMEView.h中加 "NAMEDoc.h"
在CMainFrame中定义
CNAMEView *pView=(CNAMEView *)GetActiveView();//NAME 为你工程名
调用pView->函数名 就行了

获得CView:
-在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos)
-在CChildFrame中 GetActiveView()
-在CMainFrame中
-if SDI:GetActiveView()
-if MDI:MDIGetActive()->GetActiveView()
-在其它类中
-if SDI:AfxGetMainWnd()->GetActiveView()
-if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()

不过要注意在doc中要取得view的指针C*View要注意类C*View声明的问题,
因为默认情况下,mfc在*View.h中已经包含了*Doc.h,如果在*Doc.h中包含
*View.h,就会引起嵌套包含问题,这样要在*Doc.h中加入 class C*View;
而在*Doc.cpp中加入 #include "*View.h"