VC++ 新建一个单文档项目以后,直接运行;效果如下;

界面上的菜单,工具条,都是单文档项目框架自动生成;

然后选择 文件 菜单中的 打开 文件;点击后,并看不到任何反应;但是此时框架肯定进行了一些动作,保存了可以直接使用的东西;

那么如何显示打开的文件呢?

进入类向导,类名下拉选中Doc类;消息选中 OnOpenDocument;看一下此时还没有处理函数;

点击 Add Function,看下面成员函数列表,添加了函数OnOpenDocument;

点 Edit Code,可以进入编辑该函数的代码;

先在Doc类的头文件中,添加一个成员变量;用于存储打开的文件内容;

在OnOpenDocument函数中添加读取文件的代码;完成后如下;

BOOL CTest1Doc::OnOpenDocument(LPCTSTR lpszPathName)
{if (!CDocument::OnOpenDocument(lpszPathName))return FALSE;// TODO: Add your specialized creation code hereif(lpszPathName!=NULL) {   CFile pCFile;int hResult=pCFile.Open(lpszPathName, CFile::modeReadWrite); if(hResult != 0){//       AfxMessageBox("打开文件成功");}//将文件读到dgx字符串CString temp;//可实现重复打开文件pCFile.Read(temp.GetBuffer(pCFile.GetLength()), pCFile.GetLength()); temp.ReleaseBuffer();dgx=temp;pCFile.Close();}return TRUE;
}

看一下lpszPathName变量中,已经保存了选择文件的路径;这是由框架传过来的,可以直接使用;

然后在视类OnDraw函数,添加在窗口上输出文字的代码;完成后如下;

void CTest1View::OnDraw(CDC* pDC)
{CTest1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data herepDC->DrawText(pDoc->dgx,pDoc->dgx.GetAllocLength(),CRect(50,50,500,500),DT_WORDBREAK);
}

在视类中可以获取到Doc类的成员变量pDoc->dgx的内容;然后显示;

在磁盘上新建一个测试文本,录入一首诗歌;

然后运行程序,打开测试文本;打开,即会显示;

视类的基本使用,可参阅

https://blog.csdn.net/bcbobo21cn/article/details/88097135

框架类、文档类、视图类的关系,等内容,参阅相关资料;

VC++ 单文档项目显示打开的文件相关推荐

  1. 在单文档中显示我的第一个对话框

    在单文档中显示我的第一个对话框 (2010-04-19 21:19:50) 转载▼ 标签: it   今天编写了在单文档中创建对话框以及调用对话框的代码,收获很多: 1:OnInitDialog函数的 ...

  2. MFC单文档项目动态绘制十字线

    MFC单文档项目动态绘制十字线 因为最近的一个项目涉及到了这方面的内容,所以基于自己已学的知识,在网上搜索了许多相关的资料,这些资料各有可取之处,但相对来说比较杂散,不够凝练.在经过一番整理及代码实践 ...

  3. VC++ 单文档的状态栏编程、CEditView类实现编辑器功能、编辑框显示行号列号

    Win10 企业版:VC6: 新建一个单文档工程:默认的视图类的基类是CView:选择CEditView类作为,看一下生成的效果: 构建一下:运行:以CEditView作为基类,生成的应用程序具有编辑 ...

  4. VC如何在单文档里显示对话框

    在建立这个单文档工程时,逐次点击下一步,在最后一步时选择视类的基类时,选 CFormView(默认的是 CView),这样你的空白窗口就是一个可以添加控件的对话框了.

  5. VC++ 单文档和多文档应用程序

    下面来看一下什么是VC++ MFC 单文档和多文档应用程序: VC++ 2012,新建一个工程:工程类型选择 MFC应用程序: 然后在应用程序向导中,选择应用程序类型为 单文档: 最后生成的基本应用程 ...

  6. VC单文档对话框添加托盘图标

    一 单文档添加托盘 1. 在CMainFrame中定义NOTIFYICONDATA结构m_notify 2.在OnCreate中添加托盘初始化代码 int CMainFrame::OnCreate(L ...

  7. vc 单文档程序和多文档程序有什么区别?

    单文档程序打开多个文件会产生多个进程: 多文档程序打开多个文件只需一个进程.

  8. python可以读取excel文档吗_python打开excel文件【python读取excel文件如何进行】

    Python语言打开Excel文件? 一.安装xlrd模 到python官网下http://pypi.python.org/pypi/xlrd模块安装,前已经安装python 环境. 二.使用介 1. ...

  9. VC 单文档程序 隐藏程序及任务栏图标

    1 在APP类InitInstance()里 注释掉: m_pMainWnd->ShowWindow(SW_SHOW); 2  CMainFrame::OnCreate(LPCREATESTRU ...

最新文章

  1. AVL树(一)之 C语言的实现
  2. ElementUI中的el-select中多选回显数据后没法重新选择和更改
  3. 黄聪:visual studio 2017编译运行出现脚本发生错误等问题如何解决?
  4. SmartSql 动态代理仓储
  5. #中队列的数据结构_数据结构与算法拓展(一)
  6. 第十六天-面向对象02-成员
  7. cocos2d JS 源生js实现each方法
  8. 定制ATP-EMTP电力系统仿真模型程序修改代做
  9. springboot毕设项目作业查重系统i667s(java+VUE+Mybatis+Maven+Mysql)
  10. 动态EXCEL数据透视表
  11. 等腰三角形悬臂梁式光纤光栅振动传感器分析
  12. 开源开放 | 欧若科技通过 OpenKG 开放 Nebula Graph 图数据库
  13. 关于腾讯云服务器备案全流程 内容
  14. hash碰撞解决方法
  15. Batman+joker乱谈
  16. java jframe 切换_java – 在JFrame中切换面板
  17. DDL和DML的含义与区别
  18. send_nsca passive monitor setup notes
  19. DLNA介绍(包括UPnP,2011/6/20 更新)
  20. 学习笔记(05):区块链应用案例-区块链金融应用-保险

热门文章

  1. Python 技术篇-用PIL库旋转图片、改变图像尺寸
  2. Python 微信机器人:调用电脑摄像头时时监控功能实现演示,调用电脑摄像头进行拍照并保存
  3. leetcode C++ 链表 24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换
  4. CTFshow 文件包含 web79
  5. manacher马拉车算法
  6. 第七周实践项目2.3 顺序环形队列
  7. Simulink仿真 第八节 积分模块
  8. condest--1-范数的条件数估计
  9. 13.6 Thread类自定义线程类
  10. linux 的功能,Linux的主要功能