ATL ActiveX控件的OnCreate函数不能执行

south2000 2008-01-10 02:50:02
利用向导,建立ATL的ActiveX控件,利用ClassWizard生成OnCreate函数,
在构造函数里,m_bWindowOnly = TRUE;
在OnCreate中操作一些成员变量,添加一个定时器。

发现,这个控件在Activex控件测试容器中,可以很好运行;
在IE中也能很好运行;
我建立一个MFC的对话框程序,利用右键“插入Activex控件”,也能很好运行。

可是,我利用代码,把这个Activex控件插入到richedit2.0中去的时候,这个控件能正确添加,可是不能动起来,发现定时器没有工作,我debug进去,看到OnCreate函数就没有执行过。这是为什么?

注:我的这个Activex控件是ATL的,不是MFC的。richedit2.0也是好的,经过了其他的测试。
把Activex控件插入到richedit中,我参考了这里的代码http://hi.baidu.com/favesoft/blog/item/844a9bd4a4dbcc01a08bb765.html

谢谢!
...全文
294 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
south2000 2008-01-28
  • 打赏
  • 举报
回复
我在网上找到一个方法,解决了这个问题,与大家分享!结帖。
http://blog.csdn.net/gxulg/archive/2005/03/04/311057.aspx
south2000 2008-01-23
  • 打赏
  • 举报
回复
没有人知道么?
south2000 2008-01-16
  • 打赏
  • 举报
回复
没有人知道么?
mgtcllxl 2008-01-14
  • 打赏
  • 举报
回复
构造函数里:m_bWindowOnly = TRUE;
south2000 2008-01-11
  • 打赏
  • 举报
回复
jameshooo,

“你应该通过CRichEditCtrl::GetIRichEditOle()或者发送EM_GETOLEINTERFACE消息来获得IRichEditOle接口指针,然后调用InsertObject方法插入你的控件。”

我在插入activex控件的时候,是用GetIRichEditOle,InsertObject。我参考的代码就是这样的。
////////////////////////////////////////////////////////////////////////////////////




“你的控件还需要实现IOleObject接口才能在richedit中运作”

我在MSND上看到,IOleObject接口就是IDataObject和IPersistStorage的一起应用。而我的activex控件是用vc2003向导做的,在做的时候,就已经支持了IDataObject和IPersistStorage。
/////////////////////////////////////////////////////////////////////////////////////


为什么activex控件的oncreate函数没有执行呢?


你能不能留个email给我啊,我把代码工程发给你,呵呵。
south2000 2008-01-11
  • 打赏
  • 举报
回复
jameshooo,
谢谢你!

我去尝试你的方法。
jameshooo 2008-01-10
  • 打赏
  • 举报
回复
你的控件还需要实现IOleObject接口才能在richedit中运作
你应该通过CRichEditCtrl::GetIRichEditOle()或者发送EM_GETOLEINTERFACE消息来获得IRichEditOle接口指针,然后调用InsertObject方法插入你的控件。
south2000 2008-01-10
  • 打赏
  • 举报
回复
ouyh12345
谢谢你。

FinalConstruct中不能设置定时器啊,我在里面试过的。
ouyh12345 2008-01-10
  • 打赏
  • 举报
回复
没用过richedit2.0
为什么不用FinalConstruct

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧