龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用VC6实现IE工具栏[组图]

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
平时一直喜欢用google在IE上的工具栏,于是也琢磨着写一个。国内介绍这个的文章太少,走了不少弯路,于是把自己的一些经验总结一下,希望对后来人有帮助。 首先,IE工具栏是一个

  平时一直喜欢用google在IE上的工具栏,于是也琢磨着写一个。国内介绍这个的文章太少,走了不少弯路,于是把自己的一些经验总结一下,希望对后来人有帮助。

  首先,IE工具栏是一个进程内组件,被动的由IE调用。这样就要先实现一个简单的ATL工程,这个就不用介绍了吧。如果这个都不知道的话,建议还是不要再看下去了。

  然后,在你的这个ATL类,需要实现三个接口:IObjectWithSite 、IDeskBand和IInputObject。

  IObjectWithSite 是 IE 用来对工具栏进行管理和通讯用的一个接口。这个接口有两个函数:SetSite() 和 GetSite()。当 IE 加载你的工具栏的时候,会调用 SetSite()函数。 

  IDeskBand 是IE用来确定工具栏属性的接口,有一个方法函数:GetBarInfo(),这个还属主要用来确定工具栏的一些属性,比如宽度,高度等等。

  IDockingWindow 是 IDeskBank 的基,IOleWindow 又是 IDockingWindow 的基类,所以这两个基类的接口也必须实现。

  IInputObject 接口是用来管理用户的输入的接口,有3个函数:UIActivateIO()、HasFocusIO()、TranslateAcceleratorIO()。当浏览器栏激活或失去活性的时候,IE 调用 UIActivateIO 函数,当 IE 需要判断哪个窗口有焦点的时候,它调用 HasFocusIO 。TranslateAcceleratorIO 用来处理加速键。

  下图就是实现的一个简单示例。

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接