函数作用:
该函数创建一个Open公共对话框,使用户指定驱动器、目录和文件名、或使用户打开文件。
函数原型:
BOOL GetOpenFileName(LPOPENFILENAME Ipofn);
参数:
- Ipofn:指向包含初始化对话框的信息的一个OPENFILENAME结构。当OpenfileName函数返回时,此结构包含有关用户文件选择的信息。
返回值:
- 如果用户指定了一个文件名,点击OK按钮,返回值为非零。
- 由 OPENFILENAME 结构的 IPstrFile 成员指向的缓冲区含有全路径和用户指定的文件名。如果用户取消或关闭 Open 对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用 CommDlgExtendedError 函数。. Y- R9 @# v; \) _/ a& B, ~6 G
在使用前要先初始化 OPENFILENAME 这个结构哦。
typedef struct tagOFN { DWORD lStructSize; HWND hwndOwner; HINSTANCE hInstance; LPCTSTR lpstrFilter; LPTSTR lpstrCustomFilter; DWORD nMaxCustFilter; DWORD nFilterIndex; LPTSTR lpstrFile; DWORD nMaxFile; LPTSTR lpstrFileTitle; DWORD nMaxFileTitle; LPCTSTR lpstrInitialDir; LPCTSTR lpstrTitle; DWORD Flags; WORD nFileOffset; WORD nFileExtension; LPCTSTR lpstrDefExt; LPARAM lCustData; LPOFNHOOKPROC lpfnHook; LPCTSTR lpTemplateName; #if (_WIN32_WINNT >= 0x0500) void * pvReserved; DWORD dwReserved; DWORD FlagsEx; #endif // (_WIN32_WINNT >= 0x0500). D" _- C. A! A/ S3 f } OPENFILENAME, *LPOPENFILENAME;
OPENFILENAME 各个成员详细注释(有点小长):
lStructSize
指定这个结构的大小,以字节为单位。
Windows 95/98和Windows NT 4.0:特意为Windows 95/98或Windows NT 4.0,及带有WINVER和_WIN32_WINNT >= 0x0500编译时,为这个成员使用OPENFILENAME_SIZE_VERSION_400。
Windows 2000及更高版本:这个参数使用sizeof (OPENFILENAME) 。
hwndOwner
指向所有者对话框窗口的句柄。这个成员可以是任意有效窗口句柄,或如果对话框没有所有者它可以为NULL。
hInstance
如果在Flags成员中设置了OFN_ENABLETEMPLATEHANDLE标记,hInstance成员指向包含一个对话框模板的内存对象。如果OFN_ENABLETEMPLATE标记被设置,hInstance是一个指向通过lpTemplateName成员命名的对话框模板的模块。如果两者都没有被设置,这个成员被忽略。
如果OFN_EXPLORER标记被设置,系统使用Explorer风格的默认对话框的子窗口作为指定模板来建立一个对话框。如果OFN_EXPLORER标记没有被设置,系统使用模板