DlgDirListComboBoxA 函数 (winuser.h)

将组合框的内容替换为指定目录中的子目录和文件的名称。 可以通过指定一组文件属性来筛选名称列表。 名称列表可以包括映射的驱动器号。

语法

int DlgDirListComboBoxA(
  [in]      HWND  hDlg,
  [in, out] LPSTR lpPathSpec,
  [in]      int   nIDComboBox,
  [in]      int   nIDStaticPath,
  [in]      UINT  uFiletype
);

参数

[in] hDlg

类型:HWND

包含组合框的对话框的句柄。

[in, out] lpPathSpec

类型:LPTSTR

指向包含以 null 结尾的字符串的缓冲区的指针,该字符串指定绝对路径、相对路径或文件名。 绝对路径可以以驱动器号(例如 d:)或 UNC 名称开头(例如\\machinename\sharename)。

该函数将字符串拆分为目录和文件名。 该函数在目录中搜索与文件名匹配的名称。 如果字符串未指定目录,该函数将搜索当前目录。

如果字符串包含文件名,则文件名必须至少包含一个通配符(或 )。如果字符串不包含文件名,则函数的行为就像指定了星号通配符()作为文件名一样。 指定目录中与文件名匹配且具有由 uFiletype 参数指定的属性的所有名称都会添加到组合框中显示的列表。

[in] nIDComboBox

类型:int

hDlg 对话框中组合框的标识符。 如果此参数为零,DlgDirListComboBox 不会尝试填充组合框。

[in] nIDStaticPath

类型:int

hDlg 对话框中静态控件的标识符。 DlgDirListComboBox 设置此控件的文本以显示当前驱动器和目录。 如果不想显示当前驱动器和目录,此参数可以为零。

[in] uFiletype

类型:UINT

一组位标志,指定要添加到组合框的文件或目录的属性。 此参数可以是以下值的组合。

价值 意义
DDL_ARCHIVE
包括存档的文件。
DDL_DIRECTORY
包括括在方括号([ ])中的子目录。
DDL_DRIVES
所有映射驱动器都添加到列表中。 驱动器以 [-x-] 的形式列出,其中 x 是驱动器号。
DDL_EXCLUSIVE
仅包含具有指定属性的文件。 默认情况下,即使未指定DDL_READWRITE,也会列出读/写文件。
DDL_HIDDEN
包括隐藏的文件。
DDL_READONLY
包括只读文件。
DDL_READWRITE
包括没有附加属性的读/写文件。 这是默认设置。
DDL_SYSTEM
包括系统文件。
DDL_POSTMSGS
如果设置了此标志,DlgDirListComboBox 使用 PostMessage 函数将消息发送到组合框。 如果未设置此标志,DlgDirListComboBox 使用 SendMessage 函数。

返回值

类型:int

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 例如,如果由 lpPathSpec 指定的字符串不是有效路径,则函数将失败。 若要获取扩展的错误信息,请调用 GetLastError

言论

如果 lpPathSpec 指定目录,DlgDirListComboBox 在填充组合框之前将当前目录更改为指定目录。 由 nIDStaticPath 参数标识的静态控件的文本设置为新当前目录的名称。

DlgDirListComboBoxCB_RESETCONTENTCB_DIR 消息发送到组合框。

Microsoft Windows NT 4.0 及更高版本:如果 uFiletype 包括DDL_DIRECTORY标志,lpPathSpec 指定一级目录(如 C:\TEMP),组合框将始终包含根目录的“..”。条目。 即使根目录已隐藏或系统属性以及未指定DDL_HIDDEN和DDL_SYSTEM标志,也是如此。 NTFS 卷的根目录具有隐藏属性和系统属性。

安全警告:使用此函数可能会损害程序的安全性。 此函数的用法不正确包括 lpPathSpec 指示不可写缓冲区或没有 null 终止的缓冲区。 在继续操作之前,应查看 安全注意事项:Microsoft Windows 控件

Microsoft Windows NT 4.0 及更高版本:列表显示长文件名(如果有)。

Windows 95 或更高版本:列表显示短文件名(8.3 窗体)。 可以使用 SHGetFileInfoGetFullPathName 函数获取相应的长文件名。

Windows 95 或更高版本:Unicode Microsoft 层支持 DlgDirListComboBoxW。 若要使用此功能,必须将某些文件添加到应用程序,如 Windows Me/98/95 系统上用于 Unicode 的 Microsoft 层中所述。

注意

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

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll

另请参阅

DlgDirList

DlgDirSelectComboBoxEx

参考