1、 网络编程综合实训网络编程综合实训 ( 2013- 2014 年度第年度第二二学期学期) 网络浏览器的设计网络浏览器的设计 专业专业 计算机科学与技术计算机科学与技术 学生姓名学生姓名 班级班级 学号学号 指导教师指导教师 完成日期完成日期 网络浏览器的设计 1 网络浏览器的设计网络浏览器的设计 一、一、简介简介 网页浏览器是显示网页服务器或档案系统内的文件,并让用户与此些文件互 动的一种软件。它用来显示在万维网或局部局域网路等内的文字、影像及其他资 讯。这些文字或影像,可以是连接其他网址的超连结,用户可迅速及轻易地浏览 各种资讯。网页一般是超文本标记语言(标准通用标记语言下的一个应用)的格
2、式。 本设计目标即使编写一个网络浏览器,以实现对互联网超文本标记语言内容 的正常浏览。 二、设计说明二、设计说明 本设计基于 IE 内核进行设计。 浏览器最核心的部分是渲染引擎(Rendering Engine) ,我们一般习惯称之为 “浏览器内核” ,其负责解析网页语法(如标准通用标记语言的子集 HTML、 JavaScript)并渲染、展示网页。因此,所谓的浏览器内核通常也就是指浏览器所 采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信 息。不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同 的内核浏览器里的渲染、展示效果也可能不同。 IE 内核实际上
3、不是以 IE 为内核, 而是以微软操作系统的 WebControl 控件为 内核。采用 IE 内核有以下优势:只有 IE 内核才能打开所有网页、IE 内核浏览器 更安全、IE 内核占用内存及 CPU 更少。同时,IE 所支持的大量的第三方加载项也 可以直接用于本浏览器中。 本浏览器采用 C+编写,应用了 MFC 提供的 CSocket 编程接口,同时利用 了 WebControl 控件中的多个 API 类。其实现了网络浏览器的基础功能,并且添 加了多代理、浏览器皮肤、窗口过滤器等扩展功能。 程序主题使用 MFC 的多文档结构,利用 CDocument 类创建文档,并通过 InitInstanc
4、e()函数加载文档至主窗口。基于多文档结构的优势,浏览器支持多标 签浏览,用户在一个窗口中可同时打开多个网页。同时程序通过 WebControl 提 供的函数实现了对网页的停止、刷新、前进和后退功能。 在基础的浏览器功能外,程序新扩展了许多功能。 1、用户可通过网址缩写访问网络。本浏览器提供了网址缩写功能,方便对 网络不熟悉或记不清网址的用户访问相应的网站。程序通过建立网址和缩写的指 针,在用户输入缩写时可自动将其替换为网址所对应的字符串,从而实现对于网 页的正常访问。 数据结构课程设计 2 2、本浏览器在传统的收藏夹功能上,定义了启动组功能。在浏览器启动时, 可同时启动用户经常访问的一些网站
5、。 程序通过CFile类实现了对于文件的访问。 在用户添加收藏夹时,可选择是否将该收藏夹添加到启动组中。对于添加到启动 组中的项目,程序将进行标记,并且在下次启动时自动启动相应内容。 3、程序支持网页一键通。对于长期闲置的 F3-F12 功能键,程序利用 MFC wParam 中的功能键值,建立其于网址的指针,用户可通过功能键快捷访问相应 的网页。 4、 程序支持快捷代理设置。 用户不必进入 Internet 选项中对代理服务器进行 设置。同时,程序支持同时设置多个代理,用户可批量设置多个代理,在部分代 理服务器失效时,程序仍可通过其他代理访问网络。这一部分应用了 CSetProxy 类。 网
6、络浏览器的设计 3 5、程序可对用户界面进行自定义。通过 CToolbar 类和 CMenu 类可实现对 于菜单和工具栏按钮的自定义。程序引入了 MyIE.ini 配置文件,对于用户界面自 定义的结果可直接保存到该配置文件中,用户再次启动程序时,其对用户界面进 行的自定义操作不会丢失。 三、测试结果三、测试结果 浏览网页 数据结构课程设计 4 多页面浏览 Internet 选项 四、分析与探讨四、分析与探讨 此部分内容对于个人认为的部分设计亮点做一分析和探讨 1、自定义工具栏的实现 本浏览器可实现对于工具栏的自定义。其原理如下:程序预先将尽可能多的 功能以图标形式表现出来,并且存放在一位图文件 coldtool.bmp 中。在 CToolMenu 类加载工具栏时,通过代码将位图文件中的图标与工具栏按钮对应。 代码如下: iImage = pmd-m_nBitmap; if(pImg!=NULL) pImg-DrawIndirect( 可见程序通过指针指向位图文件,通过相对坐标将按钮分离开。这就为工具 栏的自定义创造了基础。 在用户打开自定义工具栏窗口后,可选择添加或