c++ - 从无模式对话框启动时 CFileDialog 卡住

标签 c++ mfc visual-studio-2005 cfiledialog

我正在尝试调用 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/

相关文章:

c++ - 如何填补 OpenCV 中二进制图像中的空白?

c++ - 如何在构建之间保留 lldb session

c++ - 可以将 CWinApp 放在 DLL 中吗?

c++ - 如何在CMFCPropertyGridCtrl中插入一个编辑框来使用密码?

c++ - Win32 消息泵与 MFC 消息映射,哪个更快? C++

C++ 从 Unix 转移到 Windows 中的 Visual Studio

c++ - 计算数组矩形区域中的值之和

c++ - N*N 个棋盘中,M 个象不能走的格子有多少个?

winforms - 从另一个线程更新进度条

c++ - 为什么 Debug 构建失败而 Release 构建成功?