typedef struct tagOFNW {
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCWSTR lpstrFilter;
LPWSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPWSTR lpstrFile;
DWORD nMaxFile;
LPWSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCWSTR lpstrInitialDir;
LPCWSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCWSTR lpstrDefExt;
LPARAM lCustData;
LPOFNHOOKPROC lpfnHook;
LPCWSTR lpTemplateName;
#if (_WIN32_WINNT >= 0x0500)
void * pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
#endif
} OPENFILENAMEW, *LPOPENFILENAMEW;
这个结构用于传递参数给 GetOpenFileName 和 GetSaveFileName 函数,这两个函数用于创建打开和保存对话框。
以下是结构的各个成员的说明:
- lStructSize: 结构的大小,以字节为单位,用于指定结构的大小。在调用打开和保存对话框函数之前,必须将此字段设置为结构的大小,通常使用 sizeof(OPENFILENAMEW)。
- hwndOwner: 拥有对话框的窗口的句柄。
- hInstance: 应用程序实例的句柄。
- lpstrFilter: 用于过滤文件类型的字符串,以 NULL 结尾。每个过滤器由一个描述和一个模式(例如:"Text Files (*.txt)\0*.txt\0")组成,最后以两个 NULL 结束。
- lpstrCustomFilter: 用于自定义过滤器的字符串。
- nMaxCustFilter: lpstrCustomFilter 缓冲区的最大大小。
- nFilterIndex: 当对话框打开时,默认显示的过滤器的索引。
- lpstrFile: 接收用户选择的文件名的缓冲区。
- nMaxFile: lpstrFile 缓冲区的大小。
- lpstrFileTitle: 接收用户选择的文件的简短名称的缓冲区。
- nMaxFileTitle: lpstrFileTitle 缓冲区的大小。
- lpstrInitialDir: 对话框的初始目录。
- lpstrTitle: 对话框标题。
- Flags: 用于指定对话框的标志,例如是否显示“帮助”按钮等。
- nFileOffset: lpstrFile 缓冲区中文件名的偏移量。
- nFileExtension: lpstrFile 缓冲区中文件扩展名的偏移量。
- lpstrDefExt: 默认文件扩展名。
- lCustData: 传递给挂钩过程的应用程序定义的数据。
- lpfnHook: 一个指向对话框挂钩过程的指针。
- lpTemplateName: 对话框模板的名称。
- pvReserved, dwReserved, FlagsEx: 一些额外的参数,通常用于支持新的特性。
请注意,如果你的应用程序使用 Unicode 字符串,应使用 OPENFILENAMEW 结构,以便支持 Unicode 版本的对话框。
转载请注明出处:http://www.zyzy.cn/article/detail/25032/Win32 API/Commdlg.h/OPENFILENAMEW