CFileDialog使用总结
http://blog.csdn.net/tianhai110/article/details/2055149
CFileDialog经常用,但经常忘,现归纳整理下,方便今后查询。
例子:
CFileDialog openDlg( TRUE, "Material File(*.material)|*.material", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Material File(*.material)|*.material||", this);
CFileDialog构造函数原型如下:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
参数意义如下:
bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。 (默认OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT)
lpszFilter 指明可供选择的文件类型和相应的扩展名。
pParentWnd 为父窗口指针。
其中,扩展名应遵循下面的格式:
"Chart Files (*.xlc)|*.xlc| Worksheet Files (*.xls)|*.xls| Data Files (*.xlc;*.xls)|*.xlc ; *.xls| All Files (*.*)|*.*||";
文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。
dwFlags的风格有:
#define OFN_READONLY 0x00000001
#define OFN_OVERWRITEPROMPT 0x00000002
#define OFN_HIDEREADONLY 0x00000004
#define OFN_NOCHANGEDIR 0x00000008
#define OFN_SHOWHELP 0x00000010
#define OFN_ENABLEHOOK 0x00000020
#define OFN_ENABLETEMPLATE 0x00000040
#define OFN_ENABLETEMPLATEHANDLE 0x00000080
#define OFN_NOVALIDATE 0x00000100
#define OFN_ALLOWMULTISELECT 0x00000200
#define OFN_EXTENSIONDIFFERENT 0x00000400
#define OFN_PATHMUSTEXIST 0x00000800
#define OFN_FILEMUSTEXIST 0x00001000
#define OFN_CREATEPROMPT 0x00002000
#define OFN_SHAREAWARE 0x00004000
#define OFN_NOREADONLYRETURN 0x00008000
#define OFN_NOTESTFILECREATE 0x00010000
#define OFN_NONETWORKBUTTON 0x00020000
#define OFN_NOLONGNAMES 0x00040000
需要注意的是,用了CFileDialog之后,会把程序的当前路径设置成选中文件的路径
所以,如果程序里有用到IO访问或者数据库访问之类的本地操作时,需要注意你的当前路径
用相对路径的话就不是原来你的程序路径了,切记!
相关文章
- 万字总结Keras深度学习中文文本分类
- 【VS开发】关于SEH的简单总结
- 37 个 Python Web 开发框架总结
- Android中全局变量与局部变量的使用总结
- 日常问题总结
- java去除数组中重复的元素方法总结
- 吐血总结,Android面试题集锦(内含面试资料|面试题|源码)
- Java基础语法总结1
- 几年的Git使用技巧总结
- 在线支付接口开发总结
- 【设计总结】
- Java Calendar使用总结
- nmap脚本使用总结
- BootStrap 经常使用控件总结
- pymongo使用总结
- php的dirname(__FILE__)和dirname(dirname(__FILE__))使用总结【转】
- 总结一个问题:csdn发布文章页面为空或者创作内容管理为空
- javascript 字符串转换数字的方法大总结
- 【C#基础】C# 数据类型总结
- 移动APP渗透测试方案 展示5个方面总结3种常见漏洞—转载绿盟科技
- Android之Handler使用方法总结
- Druid.io系列(六):问题总结
- ASP.NET Core 2.1 中异步使用Dapper总结
- PyTorch vs. TensorFlow月度使用体验总结
- SHELL字符串使用总结
- Vuejs的一些总结
- wait函数返回值总结