VC++ CFileDialog文件选择对话框的构造和文件操作

CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,然后判断选择的是确定按钮IDOK ,还是取消按钮IDCANCEL 。
构造函数原型如下
CFileDialog::CFileDialog( BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL );
参数意义如下:
1 bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框
2 lpszDefExt 指定默认的文件扩展名。
3 lpszFileName 指定默认的文件名。
4 dwFlags 指明一些特定风格。 有OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT
5 lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
例如"(*.bmp)|*.bmp|(*.gif)|*.gif|所有文件(*.*)|*.*||"
6 pParentWnd 为父窗口指针。也可用 AfxGetMainWnd()可以得到
创建文件对话框可以使用DoModal(),DoModal()返回的是IDOK和IDCANCEL ,在返回后可以利用下面的函数得到用户选择:
CFileDialog对象的成员函数
1 CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c: est est1.txt
2 CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
3 CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
4 CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
5 POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
6 CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。


如何进行文件操作
取得文件名
{
CString
FilePathName;
CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
}
相关信息:CFileDialog 用于取文件名的几个成员函数:
假如选择的文件是C:WINDOWSTEST.EXE
则:
(1)GetPathName();取文件名全称,包括完整路径。取回C:WINDOWSTEST.EXE
(2)GetFileTitle();取文件全名:TEST.EXE
(3)GetFileName();取回TEST
(4)GetFileExt();取扩展名EXE

打开文件
CFile file("C:HELLO.TXT",CFile::modeRead);///只读方式打开
///CFile::modeRead可改为 CFile::modeWrite(只写),CFile::modeReadWrite(读写),CFile::modeCreate(新建)
例子:
{
CFile file;
file.Open("C:HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
...
...
}

移动文件指针
file.Seek(100,CFile::begin);///从文件头开始往下移动100字节
file.Seek(-50,CFile::end);///从文件末尾往上移动50字节
file.Seek(-30,CFile::current);///从当前位置往上移动30字节
file.SeekToBegin();///移到文件头
file.SeekToEnd();///移到文件尾

读写文件
读文件:
char buffer[1000];
file.Read(buffer,1000);
写文件:
CString string("这个世界只有偏执狂才能成功");
file.Write(string,8);

关闭文件

转载于:https://www.cnblogs.com/suiyuan2011/archive/2011/08/11/2134972.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌的「未来城市」

来源:爱范儿摘要:自 2015 年以来,谷歌一直在进行一个神秘的项目。自 2015 年以来,谷歌一直在进行一个神秘的项目。它就是由谷歌主导的「高科技未来城市项目」。那这个高科技未来城市是个什么样的城市,让玩物君来告诉你…

解题报告 keke 的房子

1. 题目 Keke的房子 Description keke得到了一块n*m的土地,他灰常高兴,于是他想要盖个房子,keke的房子必须是正方形的。 但是,并不是土地的每个地方都能盖房子。地面上有一些地方不能盖一砖一瓦。 他当然希望将房子盖得大一…

安卓逆向_19( 一 ) --- APK保护策略【APP打开就崩溃 之 霸哥apk过签名校验】

From:霸哥磁力搜索apk 过签名校验:https://www.cnblogs.com/LuLuLuHao/p/12863978.html 霸哥磁力搜索app回编签名:https://www.ssfiction.com/archives/2293 https://www.cnblogs.com/LuLuLuHao 哔哩哔哩( IDA 分析 so &…

OpenAI NLP最新进展:通过无监督学习提升语言理解

编译 | reason_W编辑 | 明 明出品 | AI科技大本营摘要:近日,OpenAI 在其官方博客发文介绍了他们最新的自然语言处理(NLP)系统。这个系统是可扩展的、与任务无关的,并且在一系列不同的 NLP 任务中都取得了亮眼的成绩。但…

安卓逆向_19( 二 ) --- APK保护策略【重新签名后安装打开失败 --- 书旗小说.apk、浦发银行.apk的过签名校验【so 文件修改保存】】

From( 书旗小说过签名校验 【 使用 DDMS 分析方法调用流程 】 ):https://www.cnblogs.com/LuLuLuHao/p/12874468.html 签名校验一般步骤: 1. 先查有没有加壳,如果有壳,先脱壳2. 如果没加壳,则 …

GPU、FPGA芯片成为增强机器学习能力的“左膀右臂”

选自:forbes 编译:网易智能 参与:nariiy在商业软件中,电脑芯片已被遗忘。对于商业应用程序来说,这是一种商品。由于机器人技术与个人硬件设备联系更为紧密,因而制造应用程序仍然更侧重于硬件部分。自20世纪…

C++ 第三方常用网络库

From:https://www.cnblogs.com/aitantianderuangutou/p/11416902.html (1) ACE 庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。 http://www.cs.wustl.edu/~schmidt/ACE.html (2) Asio Asio基于Boost开发的异…

HDU1878-欧拉回路(入门题+并查集)

题意: 判断一个图是否是欧拉回路。 欧拉回路: 图 G 的一个回路,若它通过 G 中每条边一次且仅一次,则称为欧拉回路。 其中有著名的哥尼斯堡七桥问题或一笔画问题。(原来小时候我们就接触欧拉回路了,欧拉回路还是蛮常见,…

增强现实技术的9个最新应用趋势

来源:资本实验室摘要:随着AR技术的成熟,AR与行业的融合越来越深入。从设计到营销,从教育到医疗,从出行到文化,AR正在重新定义各产业的思维方式和运行方式。1.教育AR应用程序正在以更具互动性的方式改变教学…

Linux 系统调用 Ptrace 详解

From:https://blog.csdn.net/u012417380/article/details/60470075 Ptrace 详解:https://www.cnblogs.com/tangr206/articles/3094358.html ptrace运行原理及使用详解:https://blog.csdn.net/edonlii/article/details/8717029 ptrace 函数代…

10年软件开发教会我最重要的10件事[转]

1.面向对象比你想象的要难得多 也许只有我有这种想法,不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那还真是挺难的。 十年之后,我仍然在…

安卓系统内 的 安卓虚拟机

转载:虚拟大师,让你的系统再安装一个系统,实现Xposed自由,支持摄像头调用http://xposed.appkg.com/2971.html 虚拟大师 VMOS 虚拟大师简介 虚拟大师是 Android 系统上的 Vmvare,完整的且自带 Root 系统能够让你实现无限…

未来一年最有可能成为独角兽的29家美国初创公司

来源: 资本实验室摘要:近期,研究机构PitchBook梳理出了在未来一年最有可能成为独角兽的29家美国初创公司。资本实验室今日投资关注聚焦前沿科技创新与传统产业升级“小兄弟,老夫看你骨骼清奇,天赋异禀,定是…

StreamWriter类的一般使用方法

理解StreamWriter可以对照StreamReader类来进行,因为他们只是读写的方式不同,一个是读,一个是写,其他的差别不是特别大。 StreamWriter继承于抽象类TextWriter,是用来进行文本文件字符流写的类。 它是按照一种特定的编…

Firefox、Chrome 盘助手

From:https://www.runningcheese.com/baiduyun IDM 下载地址:http://www.ucbug.com/soft/26392.html 定制 Firefox、Chrome 下载地址:https://www.runningcheese.com/ 由网友 "哩呵" 制作的 网盘助手 脚本,需要通过拓…

复杂性理论:科学方法的第三个梯级

来源:人机与认知实验室摘要:莫兰认为系统论超越了还原论,复杂性理论又超越了系统论,它们代表着科学方法论依次达到的三个梯级。复杂性研究从20世纪末叶兴起,目前在国内外已成为许多学科领域内研究的前沿和热点。它涉及…

hdu 1241 Oil Deposits 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1241 第一次写搜索代码 花了好大的功夫检查 看了别人的结题报告 还是错误一大堆 哎 题目是这样的 表示油田 *表示非油田 与其八个方向组成一片连续油田 一个*组成的图 文有几片油田 思路:没被标记找…

Notepad++ 简单使用

github 下载地址:https://github.com/notepad-plus-plus 简介 Notepad 是 Windows 下的一款免费开源代码编辑器,它使用较少的CPU功率,降低电脑系统能源消耗,但轻巧且执行效率高,使得 Notepad 可完美地取代微软视窗的记…

MIT:机器学习预测2018世界杯冠军

来源 :199IT互联网数据中心摘要:麻省理工学院报道,他们的研究人员开发了一种新型人工智能,用以预测世界杯走势。麻省理工学院报道,他们的研究人员开发了一种新型人工智能,用以预测世界杯走势。研究人员声称…

安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断

From( 模拟器检测实战分析 ):https://www.bilibili.com/video/BV1UE411A7rW?p65 怎样过 app 的模拟器检测:https://bbs.pediy.com/thread-249759.htm Android 模拟器如何不被检测思路:https://bbs.pediy.com/thread…