当前位置: 首页 > news >正文

【MFC】如何读取rtf文件并进行展示

tf是微软的一个带格式的文件,比word简单,我们可以用写字板等程序打开编辑。下面以具体实例讲解如何在自己程序中展示rtf文件。
首先使用VS2022创建一个MFC的工程。
在这里插入图片描述
VIEW类需要选择richview类,用于展示,如下图:
在这里插入图片描述
运行效果如下:
在这里插入图片描述
在这里插入图片描述
在创建后获取控制界面的类:

int CMFCApplication8View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CRichEditView::OnCreate(lpCreateStruct) == -1)return -1;CRichEditCtrl& lc = GetRichEditCtrl();m_pRcCtrl = &lc;return 0;
}

加载rtf文件并进行展示:

void CMFCApplication8View::LoadRtfFile(CString strRTFFileName)
{m_pRcCtrl->SetReadOnly(FALSE);CString strPath;strPath = strRTFFileName;CFile m_cFile;BOOL b = m_cFile.Open(strPath, CFile::modeRead);if (b){CArchive ar(&m_cFile, CArchive::load);Serialize(ar);ar.Close();m_cFile.Close();}m_pRcCtrl->SetReadOnly();
}

在菜单中增加调入入口:
在这里插入图片描述
在这里插入图片描述

void CMainFrame::On32771()
{CMFCApplication8Doc* pDoc;POSITION pos = theApp.m_pDocTemplate->GetFirstDocPosition();while (pos != NULL){pDoc = (CMFCApplication8Doc*)(theApp.m_pDocTemplate->GetNextDoc(pos));if (pDoc == NULL) break;POSITION pos1 = pDoc->GetFirstViewPosition();if (pos1 != NULL){CMFCApplication8View* pView = (CMFCApplication8View*)pDoc->GetNextView(pos1);pView->LoadRtfFile(_T("C:/temp/MFCApplication8/x64/Debug/test.rtf"));}}
}

最后效果如图:
在这里插入图片描述

具体代码可以见资源

http://www.lryc.cn/news/503357.html

相关文章:

  • Vulhub:Log4j[漏洞复现]
  • 面向预测性维护的TinyML技术栈全面综述
  • 沈阳理工大学《2024年811自动控制原理真题》 (完整版)
  • 用前端html如何实现2024烟花效果
  • Redis应用-在用户数据里的应用
  • C++ 中面向对象编程如实现数据隐藏
  • JavaEE 【知识改变命运】04 多线程(3)
  • gz中生成模型
  • 前端(Axios和Promis)
  • AI Agent:重塑业务流程自动化的未来力量(2/30)
  • 前端页面导出word
  • 【考前预习】1.计算机网络概述
  • ubuntu20.04复现 Leg-KILO
  • Ensembl数据库下载参考基因组(常见模式植物)bioinfomatics 工具37
  • 简单介绍web开发和HTML CSS_web网站开发流程
  • Docker 中使用 PHP 通过 Canal 同步 Mysql 数据到 ElasticSearch
  • 数据结构之五:排序
  • 科研绘图系列:R语言绘制热图和散点图以及箱线图(pheatmap, scatterplot boxplot)
  • 基于 webRTC Vue 的局域网 文件传输工具
  • LeetCode 718. 最长重复子数组 java题解
  • 算法知识-15-深搜
  • 区块链dapp 开发详解(VUE3.0)
  • Plugin [id: ‘flutter‘] was not found in any of the following sources解决方法
  • 专升本-高数 1
  • 【考前预习】3.计算机网络—数据链路层
  • DockeUI 弱口令登录漏洞+未授权信息泄露
  • 【电子元器件】电感基础知识
  • 【SSH+X11】VsCode使用Remote-SSH在远程服务器的docker中打开Rviz
  • Vue Web开发(五)
  • HarmonyOS:使用Grid构建网格