这个问题已经在这里有了答案:




9年前关闭。






我正在构建一个ActiveX通信组件。我有一个类,实际上为我做所有沟通工作。我必须使用Hwnd句柄实例化此类,以使该类将消息传递给其所有者(所有者是从COleControl派生的)。

但是,当我从带有delphi的应用程序构建中使用ActiveX控件时,this->GetSafeHwnd();返回的句柄将返回NULL。 (“this”指针是我从COleControl派生的类的实例)

有人对此有解决方案吗?

最佳答案

您的控件可能允许无窗口激活。这样的控件可以在父窗口内部呈现,而不必拥有自己的窗口。不同的容器可以将此控件创建为窗口或无窗口。

禁用控件的“允许无窗口激活”属性。但是,这会降低控件的渲染性能。您可以为内部通信创建另一个不可见的窗口,并且仍然允许无窗口激活。

详细信息:请参见COleControl::GetControlFlags和windowlessActivate标志。

关于c++ - ActiveX和COleControl的HWND ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7459792/

10-10 19:09