网络编程课程设计--网络浏览器的设计.docx

网络编程课程设计--网络浏览器的设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络编程综合实训( 2013-- 2014 年度第二学期)网络浏览器的设计专业计算机科学与技术学生姓名班级学号指导教师完成日期网络浏览器的设计一、简介网页浏览器是显示网页服务器或档案系统内的文件,并让用户与此些文件互动的一种软件。它用来显示在万维网或局部局域网路等内的文字、影像及其他资讯。这些文字或影像,可以是连接其他网址的超连结,用户可迅速及轻易地浏览各种资讯。网页一般是超文本标记语言(标准通用标记语言下的一个应用)的格式。本设计目标即使编写一个网络浏览器,以实现对互联网超文本标记语言内容的正常浏览。二、设计说明本设计基于IE内核进行设计。浏览器最核心的部分是渲染引擎(Rendering Engine),我们一般习惯称之为“浏览器内核”,其负责解析网页语法(如标准通用标记语言的子集HTML、JavaScript)并渲染、展示网页。因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲染、展示效果也可能不同。IE内核实际上不是以IE为内核, 而是以微软操作系统的WebControl控件为内核。采用IE内核有以下优势:只有IE内核才能打开所有网页、IE内核浏览器更安全、IE内核占用内存及CPU更少。同时,IE所支持的大量的第三方加载项也可以直接用于本浏览器中。本浏览器采用C++编写,应用了MFC提供的CSocket编程接口,同时利用了WebControl控件中的多个API类。其实现了网络浏览器的基础功能,并且添加了多代理、浏览器皮肤、窗口过滤器等扩展功能。程序主题使用MFC的多文档结构,利用CDocument类创建文档,并通过InitInstance()函数加载文档至主窗口。基于多文档结构的优势,浏览器支持多标签浏览,用户在一个窗口中可同时打开多个网页。同时程序通过WebControl提供的函数实现了对网页的停止、刷新、前进和后退功能。在基础的浏览器功能外,程序新扩展了许多功能。1、用户可通过网址缩写访问网络。本浏览器提供了网址缩写功能,方便对网络不熟悉或记不清网址的用户访问相应的网站。程序通过建立网址和缩写的指针,在用户输入缩写时可自动将其替换为网址所对应的字符串,从而实现对于网页的正常访问。2、本浏览器在传统的收藏夹功能上,定义了启动组功能。在浏览器启动时,可同时启动用户经常访问的一些网站。程序通过CFile类实现了对于文件的访问。在用户添加收藏夹时,可选择是否将该收藏夹添加到启动组中。对于添加到启动组中的项目,程序将进行标记,并且在下次启动时自动启动相应内容。3、程序支持网页一键通。对于长期闲置的F3-F12功能键,程序利用MFC wParam?中的功能键值,建立其于网址的指针,用户可通过功能键快捷访问相应的网页。4、程序支持快捷代理设置。用户不必进入Internet选项中对代理服务器进行设置。同时,程序支持同时设置多个代理,用户可批量设置多个代理,在部分代理服务器失效时,程序仍可通过其他代理访问网络。这一部分应用了CSetProxy类。5、程序可对用户界面进行自定义。通过CToolbar类和CMenu类可实现对于菜单和工具栏按钮的自定义。程序引入了MyIE.ini配置文件,对于用户界面自定义的结果可直接保存到该配置文件中,用户再次启动程序时,其对用户界面进行的自定义操作不会丢失。三、测试结果浏览网页多页面浏览Internet选项四、分析与探讨此部分内容对于个人认为的部分设计亮点做一分析和探讨1、自定义工具栏的实现本浏览器可实现对于工具栏的自定义。其原理如下:程序预先将尽可能多的功能以图标形式表现出来,并且存放在一位图文件coldtool.bmp中。在CToolMenu类加载工具栏时,通过代码将位图文件中的图标与工具栏按钮对应。代码如下:iImage = pmd->m_nBitmap;if(pImg!=NULL)pImg->DrawIndirect( &dc, iImage, lefttop, CSize(cx, cy), CPoint(0, 0), iDrawStyle, iRasterOP, clrTextBack, clrMaskFore);可见程序通过指针指向位图文件,通过相对坐标将按钮分离开。这就为工具栏的自定义创造了基础。在用户打开自定义工具栏窗口后,可选择添加或删除图标。在用户完成自定义并按确定按钮时,程序执行如下代码:for( int i=0; i<n; i++){itoa(i,tmp+1,10);id = m_curbtn.GetItemData(i);AfxGetApp()->WriteProfileInt("ToolBar", tmp, id);}可见程序通

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档