MFC中的OPENFILENAME结构详解:m_ofn参数
需积分: 10 123 浏览量
更新于2024-09-13
1
收藏 42KB DOC 举报
"MFC中m_ofn参数详解"
在Microsoft Foundation Classes (MFC)中,`m_ofn` 是一个 `OPENFILENAME` 结构体的对象,该结构体用于控制 `CFileDialog` 类的行为。`CFileDialog` 是 MFC 提供的一个类,用于创建标准的文件打开、保存对话框,而 `OPENFILENAME` 结构体则提供了更底层的控制选项。`CFileDialog` 只是对 `OPENFILENAME` 的简化封装,使得开发者能更方便地使用这些对话框。
`OPENFILENAME` 结构体包含多个成员,每个成员都有特定的作用:
1. **lStructSize**: 这个成员指定了整个 `OPENFILENAME` 结构的大小,通常应设置为 `sizeof(OPENFILENAME)`,以确保结构体的所有部分都被正确填充和处理。在不同的Windows版本中,可能需要使用特定的值,如 `OPENFILENAME_SIZE_VERSION_400` 来兼容较早的操作系统。
2. **hwndOwner**: 这个成员指定了对话框的所有者窗口的句柄。如果对话框没有特定的所有者,可以设为 `NULL`。通常,所有者窗口会接收来自对话框的某些消息,比如关闭对话框的确认。
3. **hInstance**: 当使用自定义对话框模板时,`hInstance` 指向包含模板的模块。如果设置了 `OFN_ENABLETEMPLATEHANDLE` 或 `OFN_ENABLETEMPLATE` 标志,则分别用于指定内存对象或模板名称。
4. **lpstrFilter**: 这个成员非常重要,因为它定义了文件过滤器。它是一个字符串缓冲区,包含了用户可以选择的文件类型。每个过滤器由两部分组成:显示的描述和文件扩展名。多个过滤器可以用分号分隔。用户在对话框中看到的文件类型列表就是按照这个顺序排列的。如果 `lpstrFilter` 为 `NULL`,则不显示任何过滤器。
5. **lpstrCustomFilter**: 这个成员用于存储用户自定义的过滤器。在对话框首次打开时,可以设置一个初始值,用户选择的过滤器会被存储在这里,以便下次使用时恢复。
除了上述成员,`OPENFILENAME` 还包含其他成员,如 `lpstrFile` 用于指定默认文件名,`nMaxFile` 为文件名缓冲区的大小,`lpstrTitle` 用于设置对话框的标题,以及 `Flags` 成员,它是一系列标志的组合,可以控制对话框的行为,例如是否显示最近使用的文件列表 (`OFN_HIDEREADONLY`) 或使用Windows Explorer风格的对话框 (`OFN_EXPLORER`)。
在实际编程中,开发者通常会初始化 `m_ofn` 对象,并通过 `CFileDialog` 的构造函数传递这个结构体,以定制文件对话框的行为。通过熟练掌握 `OPENFILENAME` 结构体及其成员,开发者可以创建符合用户需求的、功能丰富的文件对话框。
299 浏览量
113 浏览量
点击了解资源详情
113 浏览量
171 浏览量
157 浏览量
117 浏览量
138 浏览量
165 浏览量
Nanjing2Shanghai
- 粉丝: 1
- 资源: 3
最新资源
- nRF905射频芯片文档
- symbian入门教程(创建工程)
- 嵌入式系统C语言编程
- 某某集团员工办公应用软件操作手册.pdf
- AIX_5L_Club_TestReport.doc
- T-SQL资料(很不错)
- 高校医院管理系统需求说明书
- 利用天语A615作为调制解调器让电脑上网操作方法.doc
- CCS2000的使用说明
- Beginning JavaScript with DOM Scripting and Ajax
- 高速缓冲存储器的功能
- zxld1350的英文资料
- 2440datasheet
- ASP.net 中用C#调用Java web service 图解教程
- 计算机组成原理习题答案
- redhat as3下安装oracle 9i