我GetOpenFilename()
用来让用户选择一个文件。这是代码:
wchar_t buffer[MAX_PATH] = { 0 };
OPENFILENAMEW open_filename = { sizeof (OPENFILENAMEW) };
open_filename.hwndOwner = handle_;
open_filename.lpstrFilter = L"Video Files\0*.avi;*.mpg;*.wmv;*.asf\0"
L"All Files\0*.*\0";
open_filename.lpstrFile = buffer;
open_filename.nMaxFile = MAX_PATH;
open_filename.lpstrTitle = L"Open media file...";
open_filename.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
::GetOpenFileNameW(&open_filename);
文件对话框出现了,但是当我
- 更改过滤器或
- 点击“我的电脑”
文件列表变为空。按下[F5]
没有帮助,但如果我切换到父文件夹并返回到原始文件夹(在过滤器更改的情况下),过滤工作正常并且文件显示在列表中。
编辑:我的系统是 Windows XP (SP3) 32 位 - 没什么特别的。它也发生在具有相同配置的其他机器上。