程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法从 COleControl C++ 调用 CWnd::Create大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法从 COleControl C++ 调用 CWnd::Create?

开发过程中遇到无法从 COleControl C++ 调用 CWnd::Create的问题如何解决?下面主要结合日常开发的经验,给出你关于无法从 COleControl C++ 调用 CWnd::Create的解决方法建议,希望对你解决无法从 COleControl C++ 调用 CWnd::Create有所启发或帮助;

我正在为 MFC 应用开发 ActiveX 控件。

在这个应用程序中,我有一个控件类:

class MyControl : public ColeControl

和一个 CWnd 类:

class MyCWnd : public CWnd

以及用于活动 x 和 IDl 文件的其他类...

在 MyControl 类中,我想将窗口 MyCWnd 作为 MFC 单元(窗口运行的线程)打开。

为此,我在 MyControl 中定义了一个属性 theWnd:

MyCWnd theWnd

在使用 MyControl 的方法中,我想通过调用来创建窗口:

theWnd.Create(NulL,NulL,AFX_WS_DEFAulT_VIEW,CRect(0,0),AFX_IDW_PANE_FirsT,NulL);

但此行返回 false。

我应该如何在 ColeControl 类中初始化然后创建(启动)一个 CWnd? 如果不可能,对于 ActiveX 控件,我可以从 ColeControl 继承另一个类吗?

解决方法

所以我找到了一个在我看来像黑客的解决方案:

theWnd.Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0),GetDesktopWindow(),AFX_IDW_PANE_FIRST,NULL)

父窗口就是桌面。我不知道这是否是一种干净的方法...

大佬总结

以上是大佬教程为你收集整理的无法从 COleControl C++ 调用 CWnd::Create全部内容,希望文章能够帮你解决无法从 COleControl C++ 调用 CWnd::Create所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: