// App中获取其它三项指针
void CSDIApp::OnApp()
{
// App
// Doc
CDocument *pDoc = ((CFrameWndEx *)m_pMainWnd)->GetActiveDocument();//成员变量CFrameWndEx m_pMainWnd
// MainFrame
CFrameWndEx *pMain = (CFrameWndEx *)AfxGetMainWnd();
// View
CView *pView = ((CFrameWndEx *)m_pMainWnd)->GetActiveView();
}
// Doc中获取其它三项指针
CSDIDoc::CSDIDoc()//构造函数
{
// App
CWinAppEx *pApp = (CWinAppEx *)AfxGetApp();
// Doc
// MainFrame
// Doc的创建先于MainFrame
// View
// Doc的创建先于View
}
void CSDIDoc::OnDoc()
{
// App
// 同构造函数
// Doc
// MainFrame
CFrameWndEx *pMain = (CFrameWndEx *)AfxGetMainWnd();
// View
CView *pView= (CView *)pMain->GetActiveView();
POSITION pos = GetFirstViewPosition();
pView = GetNextView(pos);
}
// MainFrame中获取其它三项指针
CMainFrame::CMainFrame()//构造函数
{
theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_VS_2005);
// App
CWinAppEx *pApp = (CWinAppEx *)AfxGetApp();
// Doc
// 构造函数里无法得到当前激活的Doc
// MainFrame
// View
// 构造函数里无法得到View指针,因为Main先于View创建。
}
void CMainFrame::OnMain()
{
// App
// 同构造函数
// Doc
CDocument *pDoc = (CDocument *)GetActiveDocument();
// MainFrame
// View
CView *pView = (CView *)GetActiveView();
}
// View中获取其它三项指针
CSDIView::CSDIView()//构造函数
{
// App
CWinAppEx *pApp = (CWinAppEx *)AfxGetApp();
// Doc
/* 无法在View的构造函数里得到Doc指针
GetDocument();实际上是返回m_pDocument
m_pDocument在OnCreate();里创建 */
//CDocument *pDoc = GetDocument();
// MainFrame
// 构造函数里无法得到MainFrame指针
// CFrameWndEx *pMain = (CFrameWndEx *)pApp->m_pMainWnd;
// View
}
void CSDIView::OnView()
{
// App
// 同构造函数
// Doc
CDocument *pDoc = GetDocument();
// MainFrame
CFrameWndEx *pMain = (CFrameWndEx *)AfxGetMainWnd();
// View
}
// Dlg中获取指针
CDlg::CDlg(CWnd* pParent /*=NULL*/)//构造函数
: CDialog(CDlg::IDD, pParent)
{
// App
CWinAppEx *pApp = (CWinAppEx *)AfxGetApp();
// Doc
CDocument *pDoc = ((CFrameWndEx *)AfxGetMainWnd())->GetActiveDocument();
// MainFrame
CFrameWndEx *pMain = (CFrameWndEx *)AfxGetMainWnd();
// View
CView *pView = ((CFrameWndEx *)AfxGetMainWnd())->GetActiveView();
}

App Doc View Frame中指针的获取的更多相关文章

  1. (转)MFC中Doc,View,MainFrmae,App各指针的互相获取

    App是应用域,所有的域中的东西都可以通过全局函数访问到它. MainFrame是主框架,也基本可以用全局函数访问到. MainFrame下是若干个ChildFrame,ChildFrame中若干个V ...

  2. MFC中获取App,MainFrame,Doc和View类等指针的方法

    From: http://hi.baidu.com/wxnxs/item/156a68f5b3b4ed18e3e3bd03   MFC中获取App,MainFrame,Doc和View类等指针的方法 ...

  3. ASP.NET 获取不同frame中的控件

    最近在做网站时遇到一个问题,需要获取不同frame中的控件,请教了一些同事,他们都说是无法取到的, 在网上查找了很多资料,找到了解决方法,现在整理一下当初的解决思路: 1.我需要在mainFrame中 ...

  4. OC中 self.view.frame.size.height = 100; 不能通过编译的原因

    在OC中,当需要修改一个view的尺寸时,通常是通过先将 self.view.fram赋值给一个临时变量,然后修改临时变量,最后将临时变量赋值给 self.view.frame.代码如下: // 1. ...

  5. struts2 - View页面中获取Action的成员变量

    struts2 - View页面中获取Action的成员变量 2016年03月02日 11:04:44 IT男青年 阅读数:1074   View页面中获取Action的成员变量 按照Struts的设 ...

  6. android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

    在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄很清楚. 现在把整个总结一下. 其实只要把下面这张图看明白就没问题了. 涉及到的方法一共有下面几个: view获取自身 ...

  7. APP store 上架过程中碰到的那些坑&被拒的各种奇葩原因整理&审核指南中文版

    苹果官方发布的十大常见被拒原因 1.崩溃次数和Bug数量.苹果要求开发者在将应用提交给App Store之前彻查自己的应用,以尽量避免Bug的存在. 2.链或错误的链接.应用中所有的链接必须是真实且有 ...

  8. 仿简书、淘宝等等App的View弹出效果

    昨天用简书App的时候觉得这个View的弹出效果特别好,而且非常平滑,所以我就尝试写了一个,和简书App上的效果基本一致了: 下面开始讲解: 1.首先我们要知道这个页面有几个View?这个页面其实有四 ...

  9. iPhone launch screen,self.view.frame.size

    在工程文件中找到以下设置 "Launch Screen File"只支持iOS8以上版本,如果用之,则self.view.frame.size返回的结果为正常的当前view尺寸. ...

随机推荐

  1. 回顾2017系列篇(一):最佳的11篇UI/UX设计文章

    2017已经接近尾声,在这一年中,设计领域发生了诸多变化.也是时候对2017年做一个总结,本文主要是从2017设计文章入手,列出了个人认为2017设计行业里最重要的UI/UX文章的前11名,供大家参考 ...

  2. JS画几何图形之三【正弦曲线】

    数学式:y=Asin(ωx+φ)+k 样例:http://www.zhaojz.com.cn/demo/draw7.html 依赖:[点].[直线] JS函数的声明: //画正弦曲线 //dot 原点 ...

  3. Nginx 错误处理方法: bind() to 0.0.0.0:80 failed

    Nginx 错误处理方法: bind() to 0.0.0.0:80 failed 今天启动window上的nginx总是报错 错误信息是bind() to 0.0.0.0:80 failed (10 ...

  4. ASP.NET Core文件上传与下载(多种上传方式)

    前言 前段时间项目上线,实在太忙,最近终于开始可以研究研究ASP.NET Core了. 打算写个系列,但是还没想好目录,今天先来一篇,后面在整理吧. ASP.NET Core 2.0 发展到现在,已经 ...

  5. (转)mysql 无法设置外键的原因总结

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  6. 导出生成xsl文件

    public String expData() throws Exception{              List<SubArea> list = subAreaService.fin ...

  7. SQL server Error Number

    描述 HY000 所有绑定列都是只读的. 必须是可升级的列,以使用 SQLSetPos 或 SQLBulkOperations 更改或插入行. HY000 已检测到一个旧 netlib (%s).请删 ...

  8. vue2 过渡 轮播图

    ---恢复内容开始--- Vue主要渲染条件: v-if:是将元素删除再创造出来进行渲染. v-show:是将元素的display=none掉,再进行渲染: 要点知识:v-key:唯一元素标识,若不设 ...

  9. Robot Framework 学习笔记(二)-------第一个脚本

    robot Framework环境搭建好之后先来一个简单的脚本跑一下 一.新建项目 二.新建测试套件  三.创建测试用例 四.导入Selenium2Library库 因为RF框架编写基于web 的测试 ...

  10. 基础环境之Docker入门

    随着Docker技术的不断成熟,越来越多的企业开始考虑使用Docker.Docker有很多的优势,本文主要讲述了Docker的五个最重要优势,即持续集成.版本控制.可移植性.隔离性和安全性. 有了Do ...