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_RESETCONTENT 和 CB_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