是的,我知道不应该混合不同的平台,但是我正在开发一个Qt应用程序,现在我们有了一个新的要求:应该使用一个标准的来代替QFileDialog。
因此,我想创建一个CFileDialog,它是一个QWidget的子级。我发现了一个与反问题相关的问题: QWidget作为现有MFC组件的子级,但与我的特定问题无关。
我的计划是编写一个包装类。
class FileStdWDialog : CFileDialog有构造函数
FileDirStdWDialog(QWidget *parent, ...);并将其映射到对超类构造函数的调用。
CFileDialog(..., ..., ..., ..., ..., CWnd* pParentWnd, ...)因此,如果我正确理解,我的问题归结为将QWidget *映射到CWnd *。你知道有什么简单的方法吗?
更新
谢谢你的暗示。可能,为QWidget获取HWND并将其转换为CWnd *是正确的解决方案。我要试试这条路。
发布于 2011-07-19 11:37:27
你可以打电话给::GetOpenFileName和::GetSaveFileName。我认为,这些是Win32函数,CFileDialog封装的。这样你就不需要MFC了。
顺便说一下,从Windows开始,建议使用公用项对话框,而不是标准的Open。
https://stackoverflow.com/questions/6746239
复制相似问题