MFC学习笔记--打开文件对话框

用来打开和保存文件的类:CFileDialog 
定义对象CFileDialog FileDlalog;

1、定义对话框属性

explicit 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, 即隐藏只读选项和覆盖已有文件前提示。

OFN_ALLOWMULTISELECT:允许选择多个文件

OFN_CREATEPROMPT:如果输入的文件名不存在,则对话框返回询问用户是否根据次文件名创建文件的消息框

OFN_FILEMUSTEXIST:只能输入已存在的文件名

OFN_FORCESHOWHIDDEN:可以显示隐藏的文件

OFN_NOREADONLYRETURN:不返回只读文件

OFN_OVERWRITEPROMPT:保存的文件已存在时,显示文件已存在的信息

lpszFilter列出下拉菜单列表中的文件类型

文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

例如:"JPG File(*.jpg)|*.jpg|All File(*.*)|*.*||"

2、显示对话框

FileDlalog.DoModal(); //返回值为IDOK,IDCANCEL

3、获取文件名

//dwFlags没有设置OFN_ALLOWMULTISELECT,即只能单选文件

FileDialog.GetFileName() //获取文件名,不含路径,如:Notepad.exe

FileDialog.GetFileTitle() //获取标题名,如Notepad

FileDialog.GetPathName() //获取完整路径名,如C:\window\Notepad.exe


//但如果设置了OFN_ALLOWMULTISELECT,怎么不能使用GetFileName获取文件名,使用下列函数

POSITION pos = FileDialog.GetStartPosition(); //获取第一个文件在列表中的位置pos,POSITION是指针类型

While(pos) //循环调用,可以获得所有文件名

FileDialog.GetNextPathName(pos) //获取pos位置上的文件名,函数返回值类型为CString,即文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值