《我的web浏览器设计》由会员分享,可在线阅读,更多相关《我的web浏览器设计(30页珍藏版)》请在金锄头文库上搜索。
1、1计 算 机 网 络 课 程 设 计题目 :Web 浏览器设计成员姓名: 班 级: 指导教师: 日 期:20012 年 6 月2目录1、系统分析. 31.1 系统需求. 31.2 功能要求. 31.3 运行环境. 31.4 开发工具. 32、概要设计. 42.1 基本设计概念. 42.2 软件设计层次图. 53、详细设计. 63.1 web 浏览器基本功能的实现. 63.2 收藏夹功能设计. 103.3 历史记录功能设计. 133.4 抓图工具设计. 154、系统运行 .255、设计总结. 29参考文献. 3031、系统分析1.1 系统需求浏览器是指可以显示网页服务器或者文件系统的 HTML
2、文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过 HTTP 协议与网页服务器交互并获取网页,这些网页由 URL 指定,文件格式通常为 HTML,并由 MIME 在 HTTP 协议中指明。一个网页中可以包括多个文档,每个文档都是分别从服务器获取的。在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,同时也越来越离不开浏览器,人们利用浏览器可以查看很多东西,上淘宝,需要浏览器,上百度搜索东西,需要浏览器,打开网站网址,需要浏览器。由此浏览器的种类也越来越多,如 IE 浏览器、谷歌浏览器、360 浏览器、遨游浏览器等等。因此,浏览器对于人们的生活起着举足轻重的作用,浏览
3、器的作用范围将不断扩大,人们的生活将离不开浏览器的使用。1.2 功能要求使用 ChtmlView 类来实现一个应用程序,使之具有 Web 浏览器的功能,包括浏览网页、前进、后退、返回主页、刷新、搜索、收藏夹、历史记录、抓图、删除等功能。1.3 运行环境本系统基于 Windows 平台设计,适用于 Windows 系列的系统,如流行的 Windows XP、Windows Vista 等。1.4 开发工具:VC+6.0C 程序开发软件;42、概要设计2.1 基本设计概念利用已有的 HTTP 控制、HTML 解释器和 HTML 执行器,通过 MFC 提供的 CHtmlView 类实现的一个 Win
4、dows 下的多功能的浏览器。该浏览器的功能包括:WEB 站点浏览、本地和网络的文件系统的浏览、前进、后退、返回主页、刷新、搜索、历史记录的维护、IE 收藏夹功能和设置桌面快捷方式功能等。22 软件设计层次图2.2.1 系统流程图:当用户登录此简易浏览器时,需要在地址栏输入需要搜索的内容的网址,当输入网址后,该浏览器会链接到相应的 URL 地址,实现页面的下载,并显示页面,从而实现该简易浏览器连接网络的功能。输入网址下载页面显示页面返回前进52.2.2 功能结构图:该程序的设计主要分 5 部分。首先是登录界面的实现,其中要创建按钮,创建菜单栏及下拉菜单的实现;第二部分要实现各按钮的具体的功能包
5、括在其中设置监听器,实现对按钮动作的监听及响应;第三部分用于对地址栏输入内容格式的设定包括如何处理异常等;第四部分实现页面的下载;第五部分用于实现页面的显示。具体的功能结构图如下:登录界面实现功能按钮实现URL连接实现下载链接页面显示链接页面web 浏览器63、详细设计3.1 web 浏览器基本功能(前进、后退、停止、刷新、搜索、主页)的实现:3.1.1 .利用 MFC AppWizard 生成应用程序框架创建工程名为 HtmlView。第一步,选择工程类型为单文档(SDI),中文语言支持。第二步和第三步使用默认值,不需要数据库,也不提供对于复合对象的支持;第四步选择 Internet Exp
6、lorer ReBars 工具栏的风格,这样就有了用来输入网址的文本框;第五步不做任何修改;第六步选择 CHtmlView 类作为视图类的基类。生成工程框架包含 4 个类。(1) 应用程序类:CHtmlViewApp,对应 HtmlView.h 和 HtmlView.cpp 文件。(2) 框架类:CMainFrame,对应 MainFrm.h 和 MainFrm.cpp 文件。(3) 文档类:HtmlViewDoc,对应 HtmlViewDoc.h 和 HtmlViewDoc.cpp 文件。(4) HtmlView 类:CHtmlViewView,对应 CHtmlViewView.h 和 CH
7、tmlViewView.cpp 文件。此时编译运行,程序已经具有基本的 Web 浏览功能,能自动链接到微软公司的网站。3.1.2 修改菜单在工作区中选择“ResourceView”选项卡,选择 Menu,双击菜单控件的名字(IDR_MAINFRAME),右边出现程序的菜单。选择菜单中的“查看”命令,已经有了“工具栏”和“状态栏”两个条目,双击下面的空框,弹出设置菜单条目属性对话框,按照表添加菜单项:菜单条目名称(Caption) ID 号前进 ID_FOWARD7后退 ID_BACK停止 ID_STOP刷新 ID_REFRESH主页 ID_HOME搜索 ID_SEARCH3.1.3 修改工具栏
8、:在工作区中选择“ReaourcecView”选项卡,选择 ToolBar,双击工具条控件的名字(IDR_MAINFRAME) ,右边出现程序的工具条。添加如图的新的按钮图样。他们的 ID 号与相应的菜单条目相同。使他们的 ID 号与相应的菜单条目的 ID 号相同。3.1.4 添加控件事件处理函数:进入类向导,选择“Message Maps”选项卡。在“Class Name”下拉列表框中选择CHtmlViewView 类,然后按照表为控件添加事件处理函数。对象 ID Messages Member FunctionID_FORWARD COMMAND OnFoward()ID_BACK COM
9、MAND OnBack()ID_STOP COMMAND OnStop()ID_REFRESH COMMAND OnRefresh()ID_HOME COMMAND OnHome()ID_SEARCH COMMAND OnSearch()3.1.5 添加事件处理函数代码:在 CHtmlViewView.cpp 实现文件中,添加上述 6 个时间处理函数的代码。void CHtmlViewView:OnBack() GoBack();/后退;void CHtmlViewView:OnForward() GoForward();/前进;void CHtmlViewView:OnHome() GoHo
10、me();/主页;void CHtmlViewView:OnStop() Stop();/停止;void CHtmlViewView:OnRefresh() Refresh();OnOldlogins();/刷新;void CHtmlViewView:OnSearch() GoSearch( );/搜索;83.1.6 添加 URL 定位功能:(1)添加网址输入栏控件。在工作区中选择“Resource View”选项卡,选择 Dialog,双击对话框控件的名字(IDR_MAINFRAME),右边出现对话框条。在上面添加一个“请输入地址”的静态文本,再添加一个组合框控件,ID 号设为 IDC_ED
11、IT_ADDRESS,作为地址栏,提供给用户输入要浏览的网站地址。如图所示。(2)添加控制代码。当用户输入网址后按回车时,就有一个 IDOK 的消息发送到主框架类,添加处理这个消息的控制函数,在该函数中,用指定的网址调用 Navigate()和 Navigate2()函数 ,就可以实现对该网页的浏览。 在 MainFrm.h 文件中,添加消息处理函数的声明。public:void OnInputAddress();在 MainFrm.cpp 文件中,添加该函数的实现代码。void CMainFrame:OnInputAddress() / 当用户输入 Web 地址并且回车 CString sW
12、ebAddress ;/ 从编辑框获取用户输入的 Web 地址m_wndDlgBar.GetDlgItem(IDC_EDIT_ADDRESS)-GetWindowText(sWebAddress);/ 浏览相应的网页(CHtmlView *)GetActiveView()-Navigate(sWebAddress);9在 MainFrm.cpp 的文件中,在消息映射(MESSAGE_MAP)段中添加自己的消息映射宏。ON_COMMAND(IDOK,OnInputAddress);3.1.7 解决单击超级链接时地址栏的同步问题:利用 CHtmlView 类的事件处理函数,当网页下载完成,会触发OnDocumentComplete()函数,该函数的参数就是所下载网页的 URL,可以利用此函数对地址栏进行