ocx内部初始化函数解决方案

ocx内部初始化函数
用MFC ActiveX Control创建的一个OCX控件。

因为在用MFC创建对话框程序时有OnInitDialog初始化,那么在ocx中有哪个是类似的函数呢?

备注:因为我在ocx的ctrl类的构造函数中得到容器的窗口为空,导致一些用容器的窗口作为
父窗口的对象不能初始化

CComPtr<IOleClientSite> cs;
cs = GetClientSite();
CComQIPtr<IOleInPlaceSite>ps = cs;
HWND hwnd = NULL;
ps->GetWindow( &hwnd );

代码中的cs为NULL.

------解决方案--------------------
容器接口是在OCX控件创建之后通过SetClientSite调用传递给你的,所以构造函数里是获取不到的。控件创建窗口应该在激活过程中完成,这个时候你已经获得容器接口了,可以取到容器窗口句柄
------解决方案--------------------
希望有帮助

blog
------解决方案--------------------
一般是在OnCreate方法中初始化
------解决方案--------------------
是不是在覆盖的函数里呀,在类上单击右键试试
------解决方案--------------------
自定义接口
InitYourOCX() 
使用前调用
ClearYourOCX()
退出时调用
------解决方案--------------------
在哪里可以添加WM_CREATE消息哦,直接重载就行了.

int CXXXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
//initialize
}