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

MFC -文件类控件

前言

  • 各位师傅大家好,我是qmx_07,今天给大家讲解MFC中的文件类
    在这里插入图片描述

MFC文件类

  • 在MFC中,CFILE 是基本的文件操作类,提供了读取、写入、打开、关闭等操作方法
  • 主要成员函数:Open(用于打开文件,设置模式 例如 只读 只写 读写)
  • Read 和 Write(用于读取文件数据 和 写入文件数据)
  • Close(打开文件,完成操作之后需要关闭文件)
  • 绘图准备
    在这里插入图片描述
  • Edit Control文本编辑框,设置文本靠右输出,只读,多行显示,具有垂直滚动条
  • 设置四个Button按钮
  • 双击 自动创建对应函数
    在这里插入图片描述
    在这里插入图片描述
  • 文本编辑框需要添加变量,以便后续使用

读取文件内容

void CMFCApplication2Dlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码//读取CFile File;File.Open(L"G:\\test.txt",CFile::modeRead);//读取对应文件,读模式打开DWORD FileLength = File.GetLength();//获取 文件文本长度char* Buffer = new char[FileLength + 1];//创建文本空间,+1是因为'\0'memset(Buffer, 0, FileLength + 1);//初始化空间File.Read(Buffer, FileLength);//将数据写入到BufferCString csBuffer;csBuffer.Format(L"%S", Buffer);//格式化输入到csBufferm_Edit.SetWindowTextW(csBuffer);//将csBuffer的内容 输出到文本框控件里File.Close();//关闭文件
}
  • 获取文件内容,开辟空间,格式化输出到屏幕
    文件准备:
    在这里插入图片描述
    画面演示:
    在这里插入图片描述

写入文件

void CMFCApplication2Dlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码//写入CFile File;File.Open(L"G:\\test.txt", CFile::modeWrite);//设置打开文件,写入模式char* WriteBuffer = "qmx_07";//要写入的数据File.Write(WriteBuffer, strlen(WriteBuffer));//写入文本,写入的长度File.Flush();//刷新File.Close();//关闭文件
}
  • 写入文件 记得要 刷新一下
    画面演示:
    在这里插入图片描述

显示文件夹内容

void CMFCApplication2Dlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码//显示文件夹内容CString FileInfo;CFileFind finder;BOOL Ret = finder.FindFile(L"G:\\MFC_Demo\\*.*");//设置要查找的文件夹以及名称后缀while (Ret){Ret = finder.FindNextFileW();CString strPath = finder.GetFilePath();//获取Path路径FileInfo += strPath += "\r\n";//将path路径陆续添加到FileInfo字符串里}m_Edit.SetWindowTextW(FileInfo);//将信息 输出到文本框中
}
  • FindNextFileW函数 会返回布尔值,用于检索是否找到下一个文件,如果找到为True,否则为False,退出循环
    环境准备:
    在这里插入图片描述
    画面演示:
    在这里插入图片描述
查找文件
void CMFCApplication2Dlg::OnBnClickedButton3()
{// TODO: 在此添加控件通知处理程序代码//显示文件夹内容CString FileInfo;CFileFind finder;BOOL Ret = finder.FindFile(L"G:\\MFC_Demo\\*.*");while (Ret){Ret = finder.FindNextFileW();CString strName = finder.GetFileName();CString strPath = finder.GetFilePath();FileInfo += strPath += "\r\n";if (strName == "hello.txt"){AfxMessageBox(strName);}}m_Edit.SetWindowTextW(FileInfo);
}
  • 在查找文件夹的基础上,增加if匹配
  • AfxMessageBox 可以弹出消息,但是此消息是模态
    画面演示:
    在这里插入图片描述

选择文件

void CMFCApplication2Dlg::OnBnClickedButton4()
{// TODO: 在此添加控件通知处理程序代码//选择文件CFileDialog File(TRUE, NULL, NULL, NULL, L"文件|*.txt|ALL Files|*.*||", this);File.DoModal();//显示文件选择对话框,阻塞程序运行,直到用户关闭对话框CString Path = File.GetPathName();//获取文本路径m_Edit.SetWindowTextW(Path);//将文本路径输出到对话框中
}
  • CFileDialog参数解释: 第一个参数,如果为True 代表打开文件对话框,如果为False为 保存文件对话框
  • 这几个NULL分别表示初始目录、默认文件名和文件扩展名过滤器
  • L"文件|.txt|ALL Files|.*||" 表示文件对话框 可以显示的文件类型
  • this代表对话框的 父窗口
  • 这段代码解释:通过设置文件选择,获取文件路径,输出到编辑框
    画面演示:
    在这里插入图片描述

总结

  • 介绍了MFC文件类使用 读取文件,写入文件,显示文件夹内容,查找文件,以及创建文件选择对话框

相关文章:

MFC -文件类控件

前言 各位师傅大家好,我是qmx_07,今天给大家讲解MFC中的文件类 MFC文件类 在MFC中,CFILE 是基本的文件操作类,提供了读取、写入、打开、关闭等操作方法主要成员函数:Open(用于打开文件,设置模式 例如 只读 只写 读…...

Hbase操作手册

一:Hbase 创建数据库表 1.进入hbase shell 2.创建数据库表的命令:create 表名, 列族名1,列族名2,列族名N 3.如果想查看所有数据库表,可以使用list 命令: 4.可以看到,刚创建的数据库表user 已经在数据库表的列表中&…...

vue组件($refs对象,动态组件,插槽,自定义指令)

一、ref 1.ref引用 每个vue组件实例上&#xff0c;都包含一个$refs对象&#xff0c;里面存储着对应dom元素或组件的引用。默认情况下&#xff0c;组件的$refs指向一个空对象。 2.使用ref获取dom元素的引用 <template><h3 ref"myh3">ref组件</h3&g…...

构建高可用和高防御力的云服务架构第五部分:PolarDB(5/5)

引言 云计算与数据库服务 云计算作为一种革命性的技术&#xff0c;已经深刻改变了信息技术行业的面貌。它通过提供按需分配的计算资源&#xff0c;使得数据存储、处理和分析变得更加灵活和高效。在云计算的众多服务中&#xff0c;数据库服务扮演着核心角色。数据库服务不仅负…...

QT窗口无法激活弹出问题排查记录

问题背景 问题环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12 碰见了一个问题应用最小化,然后激活程序窗口无法弹出 这里描述一下代码的逻辑,使用QLocalServer实现一个单例进程,具体的功能就是在已存在一个程序A进程时,再启动这个程序A,新的程序A进程会被杀死,然后激活已存…...

node.js 版本管理

在Node.js开发中&#xff0c;版本管理是一个非常重要的环节&#xff0c;特别是当你需要同时维护多个项目&#xff0c;而这些项目又依赖于不同版本的Node.js时。以下是一些常用的Node.js版本管理工具和方法&#xff1a; 1. NVM (Node Version Manager) NVM是Node.js版本管理的…...

使用Python实现图形学曲线和曲面的NURBS算法

目录 使用Python实现图形学曲线和曲面的NURBS算法引言NURBS曲线的数学原理1. NURBS曲线定义2. 权重的作用 NURBS曲线的Python实现1. 类结构设计2. 代码实现3. 代码详解使用示例 NURBS曲面的扩展NURBS曲面类实现 总结 使用Python实现图形学曲线和曲面的NURBS算法 引言 NURBS&a…...

SpringBoot3

文章目录 一、为什么要学习SpringBoot二、SpringBoot介绍2.1 约定优于配置2.2 SpringBoot中的约定三、SpringBoot快速入门3.1 快速构建SpringBoot3.1.1 选择构建项目的类型3.1.2 项目的描述3.1.3 指定SpringBoot版本和需要的依赖3.1.4 导入依赖3.1.5 编写了Controller3.1.6 测试…...

【Text2SQL】领域优质论文分享

解读论文&#xff1a;Enhancing Few-shot Text-to-SQL Capabilities of Large Language Models: A Study on Prompt Design Strategies 1. 重要贡献 这篇论文的主要贡献在于提出了一种新的方法来增强大型语言模型&#xff08;LLMs&#xff09;在少量样本&#xff08;Few-shot…...

2024全国研究生数学建模竞赛(数学建模研赛)ABCDEF题深度建模+全解全析+完整文章

全国研究生数学建模竞赛&#xff08;数学建模研赛&#xff09;于9月21日8时正式开赛&#xff0c;赛程4天半&#xff0c;咱这边会在开赛后第一时间给出对今年的6道赛题的评价、分析和解答。包括ABCDEF题深度建模全解全析完整文章&#xff0c;详情可以点击底部的卡片来获取哦。 …...

Java项目中异常处理的最佳实践

1. 异常分类 首先&#xff0c;理解异常的不同类型是合理处理异常的基础。Java中的异常大致可以分为两大类&#xff1a; 受检异常&#xff08;Checked Exceptions&#xff09;&#xff1a;这些异常必须被捕获或声明抛出&#xff0c;例如IOException。非受检异常&#xff08;Un…...

CSS基本概念以及CSS的多种引入方式

CSS基本概念 CSS是层叠样式表&#xff0c;又叫级联样式表&#xff0c;简称样式表。CSS的文件后缀为.css&#xff0c;CSS用于HTML文档中元素样式的定义。 CSS的基本语法 CSS的规则由2个主要的部分构成&#xff1a;选择器以及一条或者多条声明。 选测器通常是你血药改变样式的…...

TiDB 简单集群部署拓扑文件

TiDB集群部署 服务器环境部署拓扑 都2024了还在为分库分表烦恼吗&#x1f618;&#xff0c;用分布式数据库TiDB、OceanBase、华为 GaussDB&#xff0c;你就使劲往里存数据。 早下班、少脱发、脱单&#xff01; &#x1f64f;&#x1f3fb;&#x1f64f;&#x1f3fb;&#x1f6…...

十三 系统架构设计(考点篇)

1 软件架构的概念 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件&#xff0c;构件 的外部可见属性以及它们之间的相互关系。 体系结构并非可运行软件。确切地说&#xff0c;它是一种表达&#xff0c;使软件工程师能够&#xff1a; (1)分…...

Java-数据结构-二叉树-习题(三)  ̄へ ̄

文本目录&#xff1a; ❄️一、习题一(前序遍历非递归)&#xff1a; ▶ 思路&#xff1a; ▶ 代码&#xff1a; ❄️二、习题二(中序遍历非递归)&#xff1a; ▶ 思路&#xff1a; ▶ 代码&#xff1a; ❄️三、习题三(后序遍历非递归)&#xff1a; ▶ 思路&#xff1a; …...

SpringBoot+Aop+注解方式 实现多数据源动态切换

整体思路&#xff1a; 引入基本依赖SpringBootAopMySqlMyBatislombok在配置文件中配置多个数据源创建数据源配置类用于读取配置编写用于标识切换数据源的注解创建数据源切换工具类DataSourceContextHolder编写切面类用于在注解生效处切换数据源编写配置类&#xff0c;加载数据…...

企业如何高效应对多类型知识产权事务的复杂挑战?

随着企业的发展和创新活动的不断推进&#xff0c;越来越多的企业拥有了大量的专利、商标和软著等知识产权&#xff0c;这些不仅关乎企业的技术创新成果&#xff0c;更直接影响到企业的品牌价值和市场竞争力。然而&#xff0c;当企业拥有多件知识产权时&#xff0c;复杂的申请、…...

openeuler22.03 LTS 源码编译安装nginx1.22.1

openeuler22.03 LTS 源码编译安装nginx1.22.1 下载安装包 #官网下载nginx1.22.1 wget http://nginx.org/download/nginx-1.22.1.tar.gz安装依赖包 #安装依赖包&#xff0c;NGINX是C语言写的&#xff0c;pcre-devel支持正则表达式&#xff0c;openssl 开启加密 [rootproxy ~]…...

图片压缩工具免费怎么找?归纳了这几个压缩工具

有哪些图片压缩工具免费&#xff1f;在数字化时代&#xff0c;图像已成为我们生活中不可或缺的一部分。无论是网站设计、社交媒体分享还是文件传输&#xff0c;高质量的图片都扮演着重要的角色。但高质量往往意味着大文件体积&#xff0c;这可能会导致加载速度变慢或存储空间不…...

【Kubernetes知识点】解读HPA的 thrashing(抖动)问题

【Kubernetes知识点】解读HPA的 thrashing&#xff08;抖动&#xff09;问题 目录 1 概念 1.1 什么是 Thrashing 现象&#xff1f;1.2 HPA 中 Thrashing 产生的原因1.3 解决 Thrashing 的优化措施 1.3.1 设置合适的阈值1.3.2 使用自定义指标和基于负载的自动扩缩1.3.3 增加扩…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...