1、获取应用程序指针 
CMyApp* pApp=(CMyApp*)AfxGetApp();

2、获取主框架指针 
CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd); 
或者 
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();

3、获取菜单指针 
CMenu* pMenu = AfxGetMainWnd()->GetMenu();

4、获取工具栏、状态栏指针 
主框架中可以直接使用m_wndToolBar、m_wndStatusBar 
其他:

CToolBar* pToolBar = (CToolBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR); 
CStatusBar* pStatusBar = (CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);

5、获取控件指针 
先用 GetDlgItem() 再转换,如:

CButton* pButton = (CButton*)GetDlgItem(IDC_MYBUTTON);

6、通过框架获取文档、视图指针

SDI: 
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd(); 
CYourDoc* pDoc = (CYourDoc*)pMainFrame->GetActiveDocument(); 
CYourView* pView = (CYourView*)pMainFrame->GetActiveView();

MDI: 
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd(); 
CChildFrame* pChildFrame = (CChildFrame*)pMainFrame->GetActiveFrame(); 
CYourDoc* pDoc = (CYourDoc*)pChildFrame->GetActiveDocument(); 
CYourView* pView = (CYourView*)pChildFrame->GetActiveView();

7、文档、视图

从视图获取文档指针: 
CYourDoc* pDoc = GetDocument();

从文档获取视图指针: 
利用成员函数 GetFirstViewPosition() 和 GetNextView() 遍历 
virtual POSITION GetFirstViewPosition() const; 
virtual CView* GetNextView(POSITION& rPosition) const;

SDI: 
CYourView* pView; 
POSITION pos = GetFirstViewPosition(); 
pView = GetNextView(pos);

MDI:

定义函数 
CView* CYourDoc::GetView(CRuntimeClass* pClass)

{

CView* pView; 
    POSITION pos=GetFirstViewPosition(); 
    while(pos!=NULL) 
    { 
        pView=GetNextView(pos); 
         if(!pView->IsKindOf(pClass)) 
             break; 
    } 
    if(!pView->IsKindOf(pClass)) 
    { 
        AfxMessageBox("Connt Locate the View."); 
       return NULL; 
    } 
    return pView; 
}

使用如下: 
CYourView* pView=(CYourView*)GetView(RUNTIME_CLASS(CYourView));

8、文档模版、文档

从文档获取文档模版指针: 
CDocTemplate* GetDocTemplate() const;

从文档模版获取文档指针: 
viaual POSITION GetFirstDocPosition( ) const = 0; 
visual CDocument* GetNextDoc(POSITION & rPos) const = 0;

9、获取分割视图中各个视图的指针

主框架中定义:CSplitterWnd m_wndSplitter;

定义两个View类():CView1、CView2

框架类中重载: 
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT, CCreateContext* pContext) 

    VERIFY(m_splitter.CreateStatic(this,2,1)); //分割成两行一列 
    VERIFY(m_splitter.CreateView(0,0,RUNTIME_CLASS(CView1),CSize(100,100),pContext)); //窗口1 由CView1负责

VERIFY(m_splitter.CreateView(1,0,RUNTIME_CLASS(CView2),CSize(100,100),pContext));  //窗口2 由CView2负责
    return TRUE; 
}

获取分割视图指针 
CView1* pView1 = (CView1*)m_wndSplitter.GetPane(0,0); 
CView2* pView2 = (CView2*)m_wndSplitter.GetPane(1,0);

附:

MFC中获取窗口句柄方法:

http://blog.csdn.net/xiaoyun8822/article/details/7939605
--------------------- 
作者:_北方的雪_ 
来源:CSDN 
原文:https://blog.csdn.net/wingofeagle/article/details/8970663 
版权声明:本文为博主原创文章,转载请附上博文链接!

MFC框架类、文档类、视图类相互访问(及窗口句柄获取)的方法相关推荐

  1. 框架、文档、视图类之间的调用关系

    在多文档MFC应用程序执行过程中,创建了多于一个的文档类.视图类.子框架类对象和一个主框架类.应用类对象.这些对象之间是通过一定的方式联系在一起的,在应用程序设计中,时常需要通过这些对象之间的关系来实 ...

  2. MFC文档、视图类的基本功能和二者基本关系

    MFC中,文档类的基本功能是负责管理数据:视图类的基本功能是显示数据: 二者的基本关系是,视图类有一个文档指针m_pDocument : 使用VC6新建一个单文档工程:生成的类中,xxxDoc这个是文 ...

  3. VS2019/MFC编程入门——文档、视图和框架:分割窗口

    上一节中讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口.在内容开始前为大家介绍一款MFC界面开发控件: Xtreme Toolkit Pro | 免费下载:是屡获殊荣的 ...

  4. 基于MFC多文档多视图结构的OGRE指北针程序

    基于MFC多文档多视图结构的OGRE指北针程序 0.前沿 作者: 化凡 QQ: 371691096 Mail:zhixu_07@163.com 1.  功能描述 本程序作为OGRE和MFC结合,欲实现 ...

  5. vs2010c语言窗口程序,VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)...

    上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型 ...

  6. c语言 如何读多种数据类型 非类,c语言程序设计教学大纲(非电气类)文档.doc

    c语言程序设计教学大纲(非电气类)文档 <C语言程序设计>课程教学大纲 主任 教研室主任 大纲执笔人 姜长洪 王海荣 C语言备课组 一.课程基本信息 课程编号:×××× 课程名称:C语言程 ...

  7. 交通运输类文档下载——JT/T 808-2019、JT/T 809-2019文档分享

    交通运输类文档下载--JT/T 808-2019.JT/T 809-2019文档分享 JT/T 808-2019.JT/T 809-2019文档分享 网盘: https://pan.baidu.com ...

  8. 最新网页素材文档图库下载类网站源码+织梦CMS内核

    正文: 网页素材文档图库下载类网站源码+织梦CMS内核,本程序采用一库两站简洁方便管理后台,一个后台管理两网站,电脑版+手机版 程序特点: 1.网站手工DIV+css,代码精简,首页排版整洁大方.布局 ...

  9. VS2010-MFC(文档、视图和框架:分割窗口)

    转自:http://www.jizhuomi.com/software/226.html 上一节讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述      ...

  10. Windows编程与MFC # 4 单文档应用程序(1)

    整理自VC++程序设计课程课件 使用VC++的应用程序向导MFC AppWizard可以开发: Single document(单文档) Multiple document(多文档) Dialog b ...

最新文章

  1. 如何能在git bash中使用mvn命令_使用Github Actions完成CI/CD工作
  2. 三种实现分布式解决方案原理分析
  3. Android之三大图片缓存原理、特性对比
  4. 线程启动语句的顺序是否决定线程的执行次序。_详细分析 Java 中启动线程的正确和错误方式
  5. python去重语句_Python对列表去重的多种方法(四种方法)
  6. 网易云音乐评论催泪刷屏?我用Python抓取了1008328条热评告诉你为什么!
  7. linux内核知识图谱
  8. 苏州大学计算机复试python_苏州大学计算机考研复试经验总结
  9. MoveIt2——4.机器人模型和机器人状态
  10. 2022备赛蓝桥杯给大家的建议与提醒和资料,值得认真看一下,多拿几十分
  11. OA产品:市场需求推动OA发展
  12. Redis简介和优势
  13. 有些人的微信字体可以变成蓝色,点进去就可以知道答案,这是为什么呢?
  14. Java多线程篇--线程的等待通知
  15. 流媒体服务器原理和架构解析
  16. qrcode将生成的二维码转成img格式
  17. “华为杯”研究生数学建模竞赛2020年-【华为杯】B题:降低汽油精制过程中的辛烷值损失模型(附获奖论文)
  18. C++数据结构算法(一)
  19. 新电脑 安装idea迁移设置和插件注意事项
  20. shell之正则表达式及grep命令

热门文章

  1. Fabio技术手册(1):概述和快速上手
  2. redis:list的底层实现--压缩列表
  3. 5.TCP和UDP的区别
  4. 如何双击运行可执行的jar包-包懂
  5. 只读字符串的c语言命令,C语言只读空间 - C 语言程序设计
  6. python的setting怎么找_python-DJANGO_SETTINGS_MODULE如何配置
  7. matlab复数方程组,【求解】matlab求解非齐次方程组,但是系数矩阵是复数,求帮忙...
  8. 案例 | 铅酸蓄电池精细维护
  9. mysql8 修改密码_sysbench压测软件连接mysql8失败案例分析
  10. 成功解决AttributeError: Parent variable ‘<Variable: ID (dtype = numeric)>‘ is not the index of entity En