我正在尝试调用 CFileDialog 以允许用户选择文件。
我的程序是一个MFC应用程序,我使用的是VS2005。
这是我的问题:
我有一个创建无模式对话框的主视图。在此对话框中,我有一个菜单项,可以进行简单的 CFileDialog 调用:
CFileDialog dlgFile(true);
dlgFile.DoModal();
但是程序总是卡在DoModal上。程序不响应命令,任务管理器表示它已停止响应。
其他有趣的信息:
- 仅在 Windows 8 上观察到此问题,Windows 7 计算机似乎不受影响。
- 我使用相同的基本 View ->无模式对话框->CFileDialog 方案创建了一个新项目,它工作得很好。
- 当我调用 MessageBox 时,它出现在对话框后面(我必须按 alt 才能将其显示在前面),但程序仍然有响应。
- 如果我在主视图中进行相同的 CFileDialog 调用,它会毫无问题地弹出。
- 另一个烦人的问题可能与此相关,也可能与此无关:当 CFileDialog 调用正常工作时(在 Win 7 上),在浏览窗口中选择“计算机”会显示空白屏幕(其他一切正常)。<
我能找到的最接近的问题是:Why does CFileDialog::DoModal() Hang? 但是,我不使用线程(至少我 95% 确定我不使用线程,这不仅仅是我的项目)。我的项目会自动线程化吗?如果是这样,我如何确保这不会给我带来问题?
最佳答案
我在VS2008中也遇到同样的问题。 尝试将 CFileDialog 构造函数 (bVistaStyle) 中的最后一个参数设置为 false
关于c++ - 从无模式对话框启动时 CFileDialog 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29640257/