Я следил за этим ссылка на сайт получить дескриптор окна элемента управления ActiveX
Пример кода с сайта Microsoft
// 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 получить значение? Или мне нужно запросить, чтобы получить значение.
Спасибо
FinalConstruct
слишком рано В FinalConstruct ваш класс только создается и еще не инициализирован. Сайт «на месте» отсутствует, сайта еще нет.
Ваш контроль будет вызван его владельцем, ему дадут свой сайт, затем активируют — только тогда у вас будет возможность m_pInPlaceSite
имеется в наличии.
Других решений пока нет …