WEB开发网
开发学院软件开发VC 浏览器的定制与扩展 阅读

浏览器的定制与扩展

 2006-07-22 22:56:33 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 前言由于本人在开发中经常要在程序中嵌入浏览器,为了符合自己的需求经常要对浏览器进行扩展和定制,浏览器的定制与扩展, 解决这些问题需在网上找资料和学习的过程,我想可能很多开发者或许会遇到同样的问题,关于接口的介绍请参考:http://dev.csdn.net/develop/articl

本文示例源代码或素材下载

前言

由于本人在开发中经常要在程序中嵌入浏览器,为了符合自己的需求经常要对浏览器进行扩展和定制, 解决这些问题需在网上找资料和学习的过程,我想可能很多开发者或许会遇到同样的问题,特写此文,以供大家参考。

在MFC中使用浏览器

在MFC中微软为我们提供了CHtmlView、CDHtmlDialog类让我们的程序很方便的嵌入浏览器和进行浏览器的二次开发,这比直 接使用WebBrowser控件要方便很多,所以本文中讨论的浏览器的问题都是针对CHtmlView来讨论的。文中将提到一个类CLhpHtmlView, 它是CHtmlView的派生类,文中提及的扩展或定制都将在CLhpHtmlView类(或派生类)上实现。

怎样扩展或定制浏览器

浏览器定义了一些扩展接口(如IDocHostUIHandler可以定制浏览器界面有关的行为),以便开发者进行定制和扩展。浏览 器会在需要的时候向他的控制站点查询这些接口,在控制站点里实现相应的接口就可以进行相应的扩展。在MFC7.01类 库中,CHtmlView使用的控制站点是CHtmlControlSite的,在CHtmlControlSite类中 只实现了接口IDocHostUIHandler, 而要实现更多的扩展接口,必须用自定义的控制站类来取代CHtmlControlSite,在下文中提及的类CDocHostSite即为自定义 的控制站类。

关于接口的介绍请参考:http://dev.csdn.net/develop/article/48/48483.shtm

如何使自定义的控制站点来替换默认的控制站点呢?在MFC7.0中只需重载CHtmlView的虚函数CreateControlSite即可:

BOOL CLhpHtmlView::CreateControlSite(COleControlContainer * pContainer,
COleControlSite ** ppSite, UINT /*nID*/, REFCLSID /*clsid*/)
{
  *ppSite = new CDocHostSite(pContainer, this);// 创建自己的控制站点实例
  return (*ppSite) ? TRUE : FALSE;
}
VC6.0要替换控制站要复杂的多,这里就不讨论了,如需要6.0版本的请给我发邮件到yourshine@21cn.com。

1 2 3 4 5 6  下一页

Tags:浏览器 定制 扩展

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接