为什么GetSafeHwnd()在ActiveX控件中返回零?

时间:2011-09-17 07:28:19

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

我开发了一个MFC Activex控件,它在运行时无窗口且不可见,而我假设基本上一个activex是一个操作窗口句柄的控件,我使用GetSafeHwnd()来处理窗口,但不幸的是该方法在运行时返回零。也许我在创建activex时设置了错误的选项。我怎么能创建一个可以操纵windows hanlde的无窗口activex?

1 个答案:

答案 0 :(得分:2)

根据定义,无窗口ActiveX控件没有窗口,并作为其父窗口的一部分呈现。如果要在控件中使用Windows消息,可以使用消息循环创建工作线程,并处理其中的任何消息。要有消息循环,您不需要窗口,只需要线程。该解决方案可以在无窗口控制或任何COM组件中实现。

或者,您可以通过更改其属性来使用窗口化ActiveX控件。