从view类中获取Doc的方法如下:

    CYourDoc* pDoc = GetDocument();

这个函数已经写好,所以无需自己添加,使用时直接利用pDoc即可。

若反过来,从Doc中获取View中的函数,就需要自己写一些代码来进行获取View的指针。

主要是通过一些成员函数进行操作:

  virtual POSITION GetFirstViewPosition() const;

  virtual CView* GetNextView(POSITION pos) const;

利用这些函数,在自己的Doc文件中进行实现:

  CYourView* pView;

  POSITION pos = GetFirstViewPosition();

  pView = GetNextView(pos);

有时候最后一行代码会出现错误,提示代码为:

  error C2440: '=' cannot convert from 'CView *' to 'CYourView‘

为此我们可以利用类型转换来处理:

  pView = dynamic_cast<CYourView*>(GetNextView(pos));

这样便实现了单文档单视图项目中Doc对View类的捕获。

MFC中Doc类获取View类的方法(SDI)的更多相关文章

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

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

  2. 在MFC中使用一个单独的类实现数据在各个类之间的传递

    第一步:使用VS2010创建一个基于MFC的单文档程序,然后  编译 运行 确定没有问题. 第二步:添加一个名叫CGszCommonData  类. 第三步:在应用程序类的头文件里 添加#includ ...

  3. robotium 中通过id获取 View 以及进行相应的操作

    robotium 中id的几种表现形式 1)字符串形式:例如id/btn_example,源码中的布局里些的hierachy 中看见的都是这种. 2)数字形式:例如0x7f0700D,打开R.java ...

  4. MFC中获取命令行参数的几种方法

    在MFC程序中,可以用以下几种方法来获取命令行参数. 为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2 方法一 ::GetCommandLine(); 将获取到 " ...

  5. VC++/MFC中调用CHM帮助文档的方法

    转载:http://blog.csdn.net/hediping9811/article/details/23341387 (1)用Word编辑好帮助文档,并保存为网页格式,如mhtml格式. (2) ...

  6. Java中通过Class类获取Class对象的方法详解

    方式1:通过Object类的getObject()方法 Person p = new Person(); Class c = p.getClass(); 方式2: 通过 类名.class 获取到字节码 ...

  7. MFC中查找替换对话框CFindReplaceDialog类

    void CCFindReplaceDialogView::OnFind() { CFindReplaceDialog* pDlg = new CFindReplaceDialog(); pDlg-& ...

  8. MFC中打开一个获取路径的对话框

    不废话,上代码 CString m_FileDir; BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner = m_ ...

  9. PHP开发中session无法获取和保存问题解决方法

    今天在程序设计中无法在session中获得内容,使用编辑器打开php.ini配置文件,在其中搜索"session.save_path", 把行中前面注释用的";" ...

随机推荐

  1. Qt选择文件对话框-中文路径-转std::string

    #include <QFileDialog>#pragma execution_character_set("utf-8") QString path = QFileD ...

  2. 第十五篇:关于TCP通信程序中数据的传递格式

    前言 在之前的回射程序中,实现了字符串的传递与回射.幸运的是,字符串的传递不用担心不同计算机类型的大小端匹配问题,然而,如果传递二进制数据,这就是一个要好好考虑的问题.在客户端和服务器使用不同的字节序 ...

  3. 虚拟机如何装LINUX

    VMware 提供了免費的虛擬機 VMware player 5.0.2 供使用者下載. 從 VMware 官網http://www.vmware.com/. 的頁面進入 “Products”  “ ...

  4. css纯字母或者字母换行显示

    white-space:normal; word-break:break-all;

  5. nginx 重复提交 重复请求问题

    我遇到的奇葩问题. 后台使用的是nginx + tomcat 前端页面确实只发送了一个ajax请求到后台. 后台却接收到了两条请求! 百度了一下,说是因为nginx负载均衡,一个请求超时后会重复发送一 ...

  6. jstl标签怎么实现分页中下一页

    <script type="text/javascript">           //分页按钮处理        function goPageAction(page ...

  7. 安装Memcache的PHP扩展

    查看memcached是否启动 # ps -ef | grep memcached 安装Memcache的PHP扩展 1.在http://pecl.php.net/package/memcache 选 ...

  8. 页面链接跳转历史URL不记录的兼容处理

    1.阻止跳转a标签的链接 2.location.replace(href) 不生成新的历史记录, 但有bug 3.首先通过HTML5 history.replaceState()方法把当前URL地址替 ...

  9. virgo-tomcat访问日志的详细配置

    Tomcat 日志信息分为两类:1.运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息.2.访问日志信息,它记录的访问的时间.IP.访问的资料等相关信息. 关于tomcat访问日志的产 ...

  10. 【BZOJ4515】[Sdoi2016]游戏 树链剖分+线段树

    [BZOJ4515][Sdoi2016]游戏 Description Alice 和 Bob 在玩一个游戏. 游戏在一棵有 n 个点的树上进行.最初,每个点上都只有一个数字,那个数字是 1234567 ...