2。4 自定义浏览器
首先,我们需要了解一下浏览器主要的组件,Web浏览器主要的组成部分有以下几个:用户界面(基本上可视化的刷新、打开、关闭、收藏等都属于用户界面)、浏览器引擎(Rendering Engine,即内核,这是浏览器最核心的部分)、显示引擎(顾名思义,就是将解析出的HTML文档等呈现给使用者)、网络(它保证了浏览器的底层实现)、界面后端(用于定制小部件)、JavaScript脚本语言解释器(用来与JavaScript代码互动)、数据存储层(与Cookie有关)。
图2。3 浏览器的高层结构
定制浏览器,需要了解一些修改自定义浏览器控件外观和行为的方法。下面介绍几个宿主接口,它们同时也是用户界面设计的关键所在。
IDocHostUIHandler是IEIE暴露的一个不完全的界面取代接口,它的使用是通过MSHTML使一个应用程序托管WebBrowser控件,定制上下文菜单,以及通过ICstomDoc的设置来确定IE界面的显示结果。对IDocHostUIHandler的使用分两种情况:一,若控件为CDHtmlDialog或CHtmlView就使用CBrowserControlSite类或CHtmlControlSite类;二,若控件为CWebBrowser就调用ICustomDoc接口的SetUIHandler方法。来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
IDocHostUIHandler2继承自IDocHostUIHandler,用于Internet Explorer注册表的修改。IDocHostShowUI帮助使用者实现对信息对话框和帮助的控制。下面是一个浏览器控件的典型实例化如下:
图2。4 浏览器控件实例化
在浏览器控件具有了指向某个接口的指针的情况下,接口的方法在它的生命周期中合适的时间点就会被使用。比如测试者使用右键单击在窗口内时,首先一个名为ShowContextMenu(IDocHostUIHandler接口)函数的实现就会被调用,然后才是它的默认快捷菜单。这样我们就知道可以通过利用这个时间秩序来完成对自己的快捷菜单的控制。