C++ Windows API DlgDirList 有时不会返回正确的列表

C++ Windows API DlgDirList sometimes don't return the correct listing

本文关键字:返回 列表 API Windows DlgDirList C++      更新时间:2023-10-16

我有两个列表框,一个总是列出路径中的目录,另一个列出所选目录中的文件。

当我第一次选择一个目录时,文件被正确显示,但是如果我选择另一个目录,它什么都不列出。

这是我当前的main.cpp,所有GUI的东西都发生在这里:http://pastebin.com/PjSb8aKy

列表框代码从第31行到第45行,从第150行到第165行。

提前感谢。

-------------------------------------------------- ---------------------------------------------------------------

我在sel字符串上放了一个简单的std::cout,结果是,在我选择的第一个目录上,它是"",然后它变成了"DirectoryName",我尝试将sel字符串更改为"。/DirectoryName",没有设法做到这一点,""仍然出现,但这并不是什么困扰我,真正奇怪的东西是第一个选择返回""到sel字符串…

我认为线索是在DlgDirList函数的文档:

如果lpPathSpec指定了一个目录,DlgDirListComboBox将改变将当前目录移到指定目录,然后再填充列表盒子。

我自己从来没有使用过这些函数,但我敢打赌,你的当前目录正在被修改,所以后续调用DlgDirList正在寻找错误的地方。