CFileDialog作为QWidget的孩子

时间:2011-07-19 11:13:10

标签: qt mfc integration

是的,我知道,不应该混合使用不同的平台,但我正在研究Qt应用程序,现在我们有了新的要求:应该使用标准的Windows Open File对话框代替QFileDialog。

所以我想创建一个QWidget的子级CFileDialog。我发现了一个与反问题相关的问题:QWidget是现有MFC组件的子代,但没有关于我的具体问题。

我的计划是编写一个包装类

class FileStdWDialog : CFileDialog

使用构造函数

FileDirStdWDialog(QWidget *parent, ...);

并将其映射到对超类构造函数的调用

CFileDialog(..., ..., ..., ..., ..., CWnd* pParentWnd, ...)

所以,如果我理解正确,我的问题归结为映射 CWW *的QWidget *。你知道是否有一种简单的方法可以做到这一点吗?

更新

感谢您的提示。也许,获得QWidget的HWND和 将其转换为CWnd *是正确的解决方案。我会这样试试。

1 个答案:

答案 0 :(得分:2)

您可以致电::GetOpenFileName::GetSaveFileName。我认为这些是CFileDialog包含的Win32函数。所以你不需要MFC。

顺便说一下,从Windows Vista开始,建议使用Common Item Dialog,而不是标准的打开和保存对话框。