CWnd::DlgDirListComboBox

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

int DlgDirListComboBox( 
   LPTSTR lpPathSpec, 
   int nIDComboBox, 
   int nIDStaticPath, 
   UINT nFileType  
);

参数

  • lpPathSpec
    指向包含该路径或文件名的一个Null终止的字符串。 DlgDirListComboBox 修改此字符串,以字符串的形式,因此,此数据不应为。 请参见下面的“备注”部分。

  • nIDComboBox
    在对话框中指定一个组合框的标识符。 如果 nIDComboBox 为0,DlgDirListComboBox 假定,组合框不存在且不尝试加载一。

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

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

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

    • DDL_READONLY 只读文件。

    • DDL_HIDDEN 隐藏文件。

    • DDL_SYSTEM 系统文件。

    • DDL_DIRECTORY 内容。

    • DDL_ARCHIVE 存档。

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

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

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

返回值

指定函数的结果。 它不为零,如果列表进行,即使空列表。 0返回值表示输入字符串不包含有效的搜索路径。

备注

DlgDirListComboBox 发送 CB_RESETCONTENTCB_DIR 信息到组合框。 它没有匹配 lpPathSpec给定的路径所有文件的名称加载 nIDComboBox 指定的组合框的列表框。

lpPathSpec 参数具有以下形式:

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

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

如果为 lpPathSpec指定零长度字符串,将使用当前目录,并不修改 lpPathSpec。 如果只指定目录名,但不包含任何文件规范,该字符串将更改为“*”。

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

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

示例

// If pDialog points to a CDialog object with a combo box 
// with the identifier IDC_DIRCOMBO, this call will populate 
// the box with only the non-hidden subdirectories in the root 
// directory of the C:\ drive. 

TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | 
   DDL_DIRECTORY);

// Note that the first argument is a string and not a string  
// literal. This is necessary because DlgDirListComboBox  
// modifies the supplied string. Passing a string literal  
// will result in an access violation.   

要求

Header: afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd::DlgDirList

CWnd::DlgDirSelect

DlgDirListComboBox