我已按照此link获取ActiveX控件的窗口句柄
微软网站的示例代码
// The following code should return the actual parent window of the ActiveX control.
HWND CMyOleControl::GetActualParent()
{
HWND hwndParent = 0;
// Get the window associated with the in-place site object,
// which is connected to this ActiveX control.
if (m_pInPlaceSite != NULL)
m_pInPlaceSite->GetWindow(&hwndParent);
return hwndParent; // Return the in-place site window handle.
}
但在我的情况下,我一直发现“m_pInPlaceSite”始终为NULL。我正在尝试在我的控件FinalConstruct中运行此代码。我需要为m_pInPlaceSite赋予一个值来实现其他东西吗?或者我需要查询来获取值。
由于
答案 0 :(得分:1)
FinalConstruct
太早了。在FinalConstruct中,您的类刚刚被创建并且尚未初始化。没有“到位”网站,根本没有网站。
您的控件将由其所有者调用,它将被提供给其网站,然后被激活 - 只有这样您才可能m_pInPlaceSite
可用。