-
“打开”文件和“保存”文件对话框
-
显示 “打开” 对话框的函数是 GetOpenFileName,显示“保存”文件对话的函数是 GetSaveFileName ,这两个对话框可以让用户选择 驱动器、目录、以及一个文件名(打开对话框还允许选择多个文件),但这两个对话框并不对文件进行任何操作,也就是说,它们进给用户提供一个同一界面来“选择”文件名,获取文件名以后,对程序的打开、读写等操作还需要程序员自己解决。
-
这两个函数的用法:
lpofn 参数是一个指针,指向一个 OPENFILENMAE 结构,程序在调用函数前需要在结构中填写初始化数据,两个函数使用的结构是一样的,只是实用的初始化数据有些不同而已。 -
lpofn 结构:
在windows.inc 中结构定义如下:
结构中一些重要的字段说明:- ipstrFile – 指向一个包含文件名的缓冲区。如果这个缓冲区中已经包含了一个文件名,那么对话框初始的时候将显示这个文件名。当用户选择了一个文件的时候,函数在这里返回新的文件名。
- nMaxfile – 指定 lpstrFIle 参数指向的缓冲区长度。
- lpstrFileTitle – 指向一个缓冲区,用来接收用户选择的不含路径的文件名。这个字段可以为NULL。
- nMaxFileTitle – 指明 lpstrFileTitle 参数指向的缓冲区长度。
- lpstrInitialDir – 对话框的初始化目录,这个字段可以为 NULL。
- lpstrTitle – 指向自定义的对话框标题,如果这个字段为NULL,那么“打开”对话框和“保存”对话框的默认标题是“打开”和“另存为”。
- nFileOffset – 返回文件名字符串中文件名的起始位置,如果用户选择了文件"c:\dir1\file.ext’,这里将返回8(因为 file.ext 中 f 在第8个位置)
- nFilExtension – 返回文件名字符串中扩展名的起始位置,同样的上面的字符串,这里返回13.如果文件名的最后一个字符串是“.”,这里返回0,表示文件没有拓展名,这个字段和 nFileOffset 字段为分析文件名提供了方便。
- lpstrDefExt – 指定默认拓展名,如果用户输入了一个没有拓展名的文件名,那么函数会自动加上这个默认拓展名。
- Flags字段 – 该标志字段决定了对话框的不同行为,它可以是一些取值的组合。下面是一些重要的标志:
- OFN_ALLOWMULTISELECT – 允许同时选择多个文件名。
- OFN_CREATEPROMPT – 如果用户输入了一个不存在的文件名,对话框向用户提问“是否建立文件”
- OFN_FILEMUSTEXIST – 用户只能选择一个已经存在的文件名,使用这个文件名的同时必须使用 OFN_PATHMUSTEXIST 标志。
- OFN_HIDEREADONLY – 对话框不显示“以只读方式打开”复选框。
- OFN_OVERWRITEPROMPT – 在“
-
win32 8.2 使用通用对话框
![](https://img-home.csdnimg.cn/images/20240711042549.png)