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
指定要添加到列表框的文件或目录的属性。 此参数可以是以下一个或多个值。
价值 | 意义 |
---|---|
|
包括存档的文件。 |
|
包括子目录。 子目录名称括在方括号中([ ])。 |
|
所有映射驱动器都添加到列表中。 驱动器以 [- x-] 的形式列出,其中 x 是驱动器号。 |
|
仅包含具有指定属性的文件。 默认情况下,即使未指定DDL_READWRITE,也会列出读/写文件。 |
|
包括隐藏的文件。 |
|
包括只读文件。 |
|
包括没有附加属性的读/写文件。 这是默认设置。 |
|
包括系统文件。 |
|
如果设置,DlgDirList 使用 PostMessage 函数将消息发送到列表框。 如果未设置,DlgDirList 将使用 SendMessage 函数。 |
返回值
类型:int
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。 例如,如果由 lpPathSpec 指定的字符串不是有效路径,则函数将失败。 若要获取扩展的错误信息,请调用 。
言论
如果 lpPathSpec 指定目录,DlgDirListComboBox 在填写列表框之前将当前目录更改为指定目录。 由 nIDStaticPath 参数标识的静态控件的文本设置为新当前目录的名称。
DlgDirList 将 LB_RESETCONTENT 和 LB_DIR 消息发送到列表框。
如果 uFileType 包含DDL_DIRECTORY标志,lpPathSpec 指定一级目录(如 C:\TEMP),则列表框将始终包含根目录的“..”条目。 即使根目录已隐藏或系统属性以及未指定DDL_HIDDEN和DDL_SYSTEM标志,也是如此。 NTFS 卷的根目录具有隐藏属性和系统属性。
目录列表显示长文件名(如果有)。
例子
有关示例,请参阅以下主题:在单选列表框中创建目录列表,创建多选列表框。
注意
winuser.h 标头将 DlgDirList 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winuser.h (包括 Windows.h) |
库 | User32.lib |
DLL | User32.dll |
另请参阅
参考