【交互】MFC各个类之间相互访问分析
来源:互联网 发布:淘宝网潮男装 编辑:程序博客网 时间:2024/04/28 08:38
一、访问分析
1、MDI框架(CMainFrame)调用,CFrameWnd::GetActiveDocument可获得与当前活动的视相关联的活动文档pDocument
2、CFrameWnd::GetActiveView调用,如果是MDI窗口(CMainFrame),则返回NULL,其可以通过调用MDIGetActive找到活动的MDI子窗口,然后找到该子窗口(CChildFrame)的活动视图
3、MDI框架调用CFrameWnd::GetActiveFrame,获得当前活动CChildFrame窗口指针,该函数里面调用了MDIGetActive,然后向CMDIFrameWnd::m_hWndMDIClient发送WM_MDIGETATIVE消息,(CMDIChildWnd*)CWnd::FromHandlePermanent(hWnd)得到对象。
4、CDMIChildWnd调用GetMDIFrame获得MDI框架窗口
5、CWinApp调用AfxGetMainWnd得到应用程序theApp的m_pMainWnd对象指针
二、实例分析
1、 切分窗口实现
用在CMDIChildWnd派生一个子窗口,中声明CSplitterWnd m_Splitter中,CSplitterWnd::CreateView,new 一个pView,然后把CChildFrame对象指针传给pView->Create(..this..)作为父窗口。
m_Splitter.CreateStatic(this,1,2);//1行2列 m_Splitter.CreateView(0,0,..);//第1行,第1列 m_Splitter2.CreateStatic(&m_Splitter , 2 , 1 , ... m_Splitter.IdFromRowCol(0,1));//在m_Splitter的基础上第一行,第2列,在创建
2、MFC的视图View【5、6】
单文档CMainFrame当中,做了这样的设置:这边没有将pView加入到文档中,所以无法获取pDocument。
3、MFC—文档视图
多文档中,其他都派生,在class CDrawApp : CWinApp的初始化中,重新定义了一个菜单资源IDR_MFCMDITYPE
CDrawApp::InitInstance(){CMultiDocTemplate *pTemplate = new CMultiDocTemplate( IDR_MFCMDITYPE, RUNTIME_CLASS(CDrawDoc), RUNTIME_CLASS(CDrawChildFrm), RUNTIME_CLASS(CDrawView) ); AddDocTemplate(pTemplate); //创建主窗口 CMainFrm* pMainFrm = new CMainFrm(); pMainFrm->LoadFrame(IDR_MAINFRAME); m_pMainWnd = pMainFrm; //默认新建一个文档子窗口 OnFileNew(); //显示主窗口pMainFrm->ShowWindow(m_nCmdShow);
pMainFrm->UpdateWindow();
return TRUE;
}
参考:1、MFC多文档多视图编程
2、文档/视图结构中的各个部分是如何联系到一起的
3、MFC文档视图结构 各个互访方式
4、MFC指针的获取
5、MFC的视图View
6、MFC—文档视图
7、在MFC类中各种类的指针的获取和应用
8、mfc获得各个类的句柄
- 【交互】MFC各个类之间相互访问分析
- MFC文档类程序各个类之间指针相互获取
- MFC工程中,各个类之间相互获取指针
- 文档类程序各个类之间的相互访问关系
- MFC单文档应用程序中各个类之间相互调用的函数方法
- MFC初学者:MFC程序中类之间的相互访问的常规方法。
- C++子父类成员之间相互访问的权限分析
- 基于MFC的windows程序各个对象之间互相访问的方法
- 关于MFC自动生成的各个类的指针访问
- 关于MFC自动生成的各个类的指针访问
- 【交互】MFC架构分析
- extjs各个组件之间的交互
- Doc--View 之间相互访问
- MFC View类对话框类之间指针的相互获取
- C++/MFC修行之路(3) MFC中各个类的互相访问/取指针
- mfc可执行程序之间的相互调用
- mfc对话框之间的相互调用
- MFC CString Char* int之间相互转换。
- cocos2d-x中文文档和例子程序
- 彼得•德鲁克 (Peter F.Drucker)管理思想
- storm 单机版安装
- Android之旅 笔记总结(一)
- C位操作
- 【交互】MFC各个类之间相互访问分析
- 过滤器与拦截器
- java.util.MissingResourceException
- 求满足条件的和
- 关于防止SQL注入的问题
- int main(int argc,char* argv[])详解
- android NDK开发、编译、调试环境搭建与操作入门
- C#多线程同步事件及等待句柄
- 字符串处理