GetOpenFileNameA 函数 (commdlg.h)

[从 Windows Vista 开始,打开另存为 常见对话框已被 通用项对话框取代。 建议使用通用项对话框 API,而不是通用对话框库中的这些对话框。

创建一个 打开 对话框,允许用户指定要打开的文件或文件集的名称、目录和名称。

语法

BOOL GetOpenFileNameA(
  [in, out] LPOPENFILENAMEA unnamedParam1
);

参数

[in, out] unnamedParam1

类型:LPOPENFILENAME

指向 OPENFILENAME 结构的指针,该结构包含用于初始化对话框的信息。 GetOpenFileName 返回时,此结构包含有关用户文件选择的信息。

返回值

类型:BOOL

如果用户指定文件名并单击 确定 按钮,则返回值为非零。 OPENFILENAME 结构的 lpstrFile 成员指向的缓冲区包含用户指定的完整路径和文件名。

如果用户取消或关闭 打开 对话框或发生错误,则返回值为零。 若要获取扩展的错误信息,请调用 CommDlgExtendedError 函数,该函数可以返回以下值之一。

言论

“资源管理器”样式 “打开”对话框提供类似于 Windows 资源管理器的用户界面功能。 可以为资源管理器样式 打开 对话框提供 OFNHookProc 挂钩过程。 若要启用挂钩过程,请在 OPENFILENAME 结构的 Flags 成员中设置 OFN_EXPLOREROFN_ENABLEHOOK 标志,并在 lpfnHook 成员中指定挂钩过程的地址。

对于希望维护与旧式用户界面一致的用户界面的应用程序,Windows 继续支持旧式 打开 对话框。 若要显示旧式 打开 对话框,请启用 OFNHookProcOldStyle 挂钩过程,并确保未设置 OFN_EXPLORER 标志。

若要显示允许用户选择目录而不是文件的对话框,请调用 SHBrowseForFolder 函数。

请注意,选择多个文件时,文件名的总字符限制取决于函数的版本。

  • ANSI:32k 限制
  • Unicode:无限制

例子

有关示例,请参阅 打开文件

注意

commdlg.h 标头将 GetOpenFileName 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 commdlg.h (包括 Windows.h)
Comdlg32.lib
DLL Comdlg32.dll
API 集 ext-ms-win-shell-comdlg32-l1-1-1(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

CommDlgExtendedError

通用对话框库

概念

GetSaveFileName

OFNHookProc

OFNHookProcOldStyle

OPENFILENAME

其他资源

参考

SHBrowseForFolder