读书人

怎么得到插入到richedit中的控件

发布时间: 2012-01-18 00:23:26 作者: rapoo

如何得到插入到richedit中的控件?
msdn上的那个 polygon 的例子
一个atl activex控件
我把它插入到 richedit中去了

IPolyCtl* lpPolyCtl = NULL; //控件
......
lpRichEditOle-> GetClientSite(&lpOleClientSite);

ZeroMemory(&reobject, sizeof(REOBJECT));//初始化一个对象
reobject.cbStruct = sizeof(REOBJECT);
reobject.clsid = clsid;
......
hr = lpRichEditOle-> InsertObject( &reobject );

现在我想再得到他的 IPolyCtl 调用他的事件
请问我该怎么做?

IRichEditOle::GetObject 这个函数有用吗 总是调用不正确

[解决办法]
IPolyCtl 你这个控件有没有实现IOleObject , IDataObject , IPersistStream这三个接口,如果没有你是插入不了的
[解决办法]
IRichEditOle::GetObject()方法是可以用的。
如下:
hr = pIRichEditOle-> GetObject( 0, &reoobject, REO_GETOBJ_POLEOBJ );
这样调用成功后,reoobject结构中的poleobj就是插入的对象的IOleObject接口,调用完成后别忘了用Release释放。

读书人网 >VC/MFC

热点推荐