这个问题已经在这里有了答案:
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/