CWnd::DlgDirList

用文件或目录列表填充列表框。

int DlgDirList(
   LPTSTR lpPathSpec,
   int nIDListBox,
   int nIDStaticPath,
   UINT nFileType 
);

参数

  • lpPathSpec
    指向包含该路径或文件名的一个Null终止的字符串。DlgDirList 修改此字符串,应足够长包含修改。有关更多信息,请参见下面的“备注”部分。

  • nIDListBox
    指定列表框的标识符。如果 nIDListBox 为0,DlgDirList,假设不列表框存在且不尝试加载一。

  • nIDStaticPath
    指定用于的静态文本控件的标识符显示当前驱动器和目录。如果 nIDStaticPath 为0,DlgDirList 假定,如文本控件不存在。

  • nFileType
    指定要显示的文件的属性。它可以是下列值的任意组合:

    • 没有其他属性的DDL_READWRITE 读/写数据文件。

    • DDL_READONLY 只读文件。

    • DDL_HIDDEN 隐藏文件。

    • DDL_SYSTEM 系统文件。

    • DDL_DIRECTORY 内容。

    • DDL_ARCHIVE 存档。

    • DDL_POSTMSGS   LB_DIR 标志。如果 LB_DIR 设置了标志,在Windows应用程序的队列将 DlgDirList 生成的消息;否则,这些直接发送到对话框程序。

    • DDL_DRIVES 驱动程序。如果 DDL_DRIVES 设置了标志,DDL_EXCLUSIVE 标志自动设置为。因此,创建包括驱动器和文件的内容,必须调用两次 DlgDirList :一次使用 DDL_DRIVES 标志设置一次使用列表的其余部分的标志。

    • DDL_EXCLUSIVE 排除位。如果独占位安装,因此,只有一个指定类型的文件列表;否则该指定类型的普通文件和文件列表。

返回值

非零,如果函数运行成功;否则为0。

备注

DlgDirList 发送 LB_RESETCONTENTLB_DIR 信息到列表框。它没有匹配 lpPathSpec给定的路径所有文件的名称加载 nIDListBox 指定的列表框。

lpPathSpec 参数具有以下形式:

[drive:] [ [\u]directory[\idirectory]... \u] [filename]

在此示例中,drive 是盘符,directory 有效的目录名称,并且,文件名 是必须至少包含一个通配符的有效的文件名。通配符是问号(?),这意味着与任何字符和星号(*),这意味着匹配任意数量的字符。

如果为 lpPathSpec指定一个0长度字符串;或者,如果只指定目录名,但不包含任何文件规范,该字符串将更改为“*.*”。

如果 lpPathSpec 包括驱动器和目录名,当前驱动器和目录更改为指定的驱动器和目录,在列表框才能加载。nIDStaticPath 确定的文本控件还会使用新的驱动器和目录名。

在列表框加载后,移除路径的驱动器和目录部分更新 lpPathSpec。

示例

// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));

pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);

要求

Header: afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd::DlgDirListComboBox

DlgDirList