DlgDirListA 函数 (winuser.h)

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

语法

int DlgDirListA(
  [in]      HWND  hDlg,
  [in, out] LPSTR lpPathSpec,
  [in]      int   nIDListBox,
  [in]      int   nIDStaticPath,
  [in]      UINT  uFileType
);

参数

[in] hDlg

类型: HWND

包含列表框的对话框的句柄。

[in, out] lpPathSpec

类型: LPTSTR

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

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

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

[in] nIDListBox

类型: int

hDlg 对话框中列表框的标识符。 如果此参数为零, 则 DlgDirList 不会尝试填充列表框。

[in] nIDStaticPath

类型: int

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

[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
如果已设置, DlgDirList 将使用 PostMessage 函数将消息发送到列表框。 如果未设置, DlgDirList 将使用 SendMessage 函数。

返回值

类型: int

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

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

注解

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

DlgDirListLB_RESETCONTENTLB_DIR 消息发送到列表框。

如果 uFileType 包含 DDL_DIRECTORY 标志,并且 lpPathSpec 指定了第一级目录(如 C:\TEMP),则列表框将始终包含根目录的“..”条目。 即使根目录具有隐藏或系统属性,并且未指定DDL_HIDDEN和DDL_SYSTEM标志,也是如此。 NTFS 卷的根目录具有隐藏属性和系统属性。

目录列表显示长文件名(如果有)。

示例

有关示例,请参阅以下主题: 在单选列表框中创建目录列表创建多选列表框

注意

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

要求

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

另请参阅

DlgDirListComboBox

DlgDirSelectComboBoxEx

DlgDirSelectEx

引用