是的,我知道,不应该混合使用不同的平台,但我正在研究Qt应用程序,现在我们有了新的要求:应该使用标准的Windows Open File对话框代替QFileDialog。
所以我想创建一个QWidget的子级CFileDialog。我发现了一个与反问题相关的问题:QWidget是现有MFC组件的子代,但没有关于我的具体问题。
我的计划是编写一个包装类
class FileStdWDialog : CFileDialog
使用构造函数
FileDirStdWDialog(QWidget *parent, ...);
并将其映射到对超类构造函数的调用
CFileDialog(..., ..., ..., ..., ..., CWnd* pParentWnd, ...)
所以,如果我理解正确,我的问题归结为映射 CWW *的QWidget *。你知道是否有一种简单的方法可以做到这一点吗?
更新
感谢您的提示。也许,获得QWidget的HWND和 将其转换为CWnd *是正确的解决方案。我会这样试试。
答案 0 :(得分:2)
您可以致电::GetOpenFileName
和::GetSaveFileName
。我认为这些是CFileDialog
包含的Win32函数。所以你不需要MFC。
顺便说一下,从Windows Vista开始,建议使用Common Item Dialog,而不是标准的打开和保存对话框。