COleControl的ActiveX和HWND

时间:2011-09-18 06:04:36

标签: c++ visual-c++ mfc activex

  

可能重复:
  Why does GetSafeHwnd() return zero in an ActiveX control?

我正在构建一个ActiveX通信组件。我有一个班级,实际上为我做每一个沟通的事情。我必须用Hwnd句柄实例化这个类,以便让类将消息传递给它的所有者(所有者派生自COleControl)。

但是当我使用delphi的app构建中使用ActiveX控件时,this->GetSafeHwnd();返回的句柄返回NULL。 ('this'指针是我从COleControl中获得的类的一个实例)

有人有解决方案吗?

1 个答案:

答案 0 :(得分:1)

可能你的控制允许无窗激活。这种控制可以在父窗口内呈现,而不具有自己的窗口。不同的容器可以将此控件创建为窗口或无窗口。

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

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