收藏 分享(赏)

网络浏览器设计(论文).doc

上传人:scg750829 文档编号:6610788 上传时间:2019-04-18 格式:DOC 页数:23 大小:458.03KB
下载 相关 举报
网络浏览器设计(论文).doc_第1页
第1页 / 共23页
网络浏览器设计(论文).doc_第2页
第2页 / 共23页
网络浏览器设计(论文).doc_第3页
第3页 / 共23页
网络浏览器设计(论文).doc_第4页
第4页 / 共23页
网络浏览器设计(论文).doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、目 录1 技术要求 11.1 技术目标 11.2 主要任务 12 基本原理 13 方案设计 23.1 方案原理 23.2 系统功能 23.3 系统流程图 33.4 详细设计 44 调试 .185 总结 .216 参考文献 .22武汉理工大学能力拓展训练报告书 1网络浏览器设计1 技术要求1.1 技术目标1)使用 VC 中的 CHTMLView 开发类似微软 IE 的网络浏览器;2)要求浏览器具备常用浏览器的基本功能,如后退、前进、停止、刷新、打开主页、搜索、浏览网页等;1.2 主要任务1)复习有关课程,如 C 语言,C+等;2)分析 CHTMLVIEW 特点,提出设计方案并设计程序;3)利用

2、VC 根据方案程序编写浏览器,并完成调试;4)撰写设计说明书,进行答辩;2 基本原理我们可以利用 MFC 的 CHTMLView 实现简单的网络浏览器。CHtmlView 类的主要功能是访问 Web 网站和 HTML 文档。要创建一个 WEB 浏览器类型的应用程序,可以使用CHTMLVIEW 类,通过 MFC 应用程序向导实现。其中, CHTMLView 类的成员函数如下;(1) CHTMLView:GoBack可以浏览历史记录中的前一项。(2) CHTMLView:GoForward可以浏览历史记录中的后一项。(3) CHTMLView:Stop可以停止打开文件。(4) CHTMLView:

3、GoRefresh武汉理工大学能力拓展训练报告书 2可以重新加载当前页面(5) CHTMLView:GoHome可以浏览当前主页或起始页。(6) CHTMLView:GoSerach可以浏览当前搜索页。(7) CHTMLView:Navigate2可以浏览由 UML 标识的资源,或由完整路径标识的文件。3 方案设计3.1 方案原理基于 CHtmlView 的应用视图类用 WebBrowser 控件提供视图。这使此应用成为一个网络浏览器。创建网络浏览器的更好方法是使用 MFC AppWizard,并将 CHtmlView 指定为视图类。CHtmlView 的功能是为访问网络的应用而设计的。3.2

4、 系统功能本系统类似于微软的 IE 浏览器,具有 Web 浏览器的基本功能,包括浏览网页、前进、后退、返回主页和搜索功能。用户可以在地址栏中输入网络地址,按下回车键即可访问地址栏中的域名所对应的网页。利用菜单栏或是工具栏上的图标按钮可以实现网页的“前进” 、 “后退”、 “刷新”、 “停止”、“主页”等功能。界面与 IE 浏览器类似,操作方便快捷。3.3 系统流程图武汉理工大学能力拓展训练报告书 3图 1 程序流程图3.4 详细设计3.4.1 利用 MFC AppWizard 生成应用程序框架工程名为 IE,第一步,工程类型为单文档( SDI) ,中文语言支持。第二步和第三步使用默认值,不需要

5、数据库,也不提供对于复合对象的支持。第四步选择普通工具栏的风格。第五步不作任何修改,第六步应选择 CHtmlView 类作为视图类的基类。生成的工程框架包含四个类:开 始输入网址,分析请求对象 URL通过 INTERNET获得请求对象在浏览器上显示结 束武汉理工大学能力拓展训练报告书 4应用程序类,CIEApp,对应 IE.h 和 IE.cpp 文件。框架类,CMainFrame ,对应 MainFrm.h 和 MainFrm.cpp 文件。文档类,CIEDoc,对应 IEDoc.h 和 IEDoc.cpp 文件。HtmlView 类,CIEView,对应 IEView.h 和 IEView.

6、cpp 文件。此时编译运行,程序已经具有了基本的 Web 浏览功能,能自动连到微软的网站。现将其修改为 为默认网站。3.4.2 添加对话框打开对话框编辑器,新建对话框,修改各控件属性如下表所示:表 1 对话框设置资源标示 标题 属性IDC_STATIC 网址:IDC_EDIT_ADDRESS CString m_addressIDCANCEL 取消IDOK 确定IDD_DIALOG_ADDRESS 网址栏 CAddressDlg3.4.3 修改菜单在选项卡 ResourseView 中选择 manu 选项,在菜单上添加操作一栏,并填上相应 ID 和对应名称,如图所示:武汉理工大学能力拓展训练

7、报告书 5图 2 菜单栏修改其中菜单栏各属性设计如下:表 2 菜单设置资源标识 标题 消息处理函数ID_NAVIGATE 打开网址 CIEView:OnNavigate()ID_FORWARD 前进 CIEView:OnForward()ID_BACK 后退 CIEView:OnBack()ID_HOME 主页 CIEView:OnHome()ID_REFRESH 刷新 CIEView:OnRefresh()ID_STOP 停止 CIEView:OnStop()3.4.4 部分关键代码AddressDlg.h(CAddressDlg 的类定义)#if !defined(AFX_ADDRESSD

8、LG_H_CFCFC94C_FAD5_4CCB_A891_A930EE48233B_INCLUDED_)#define AFX_ADDRESSDLG_H_CFCFC94C_FAD5_4CCB_A891_A930EE48233B_INCLUDED_#if _MSC_VER 1000武汉理工大学能力拓展训练报告书 6#pragma once#endif / _MSC_VER 1000/ AddressDlg.h : header file/ CAddressDlg dialogclass CAddressDlg : public CDialog/ Constructionpublic:CAddre

9、ssDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CAddressDlg)enum IDD = IDD_DIALOG_ADDRESS ;CString m_address;/AFX_DATA/AFX_VIRTUAL(CAddressDlg)/ Overrides/ ClassWizard generated virtual function overrides武汉理工大学能力拓展训练报告书 7/AFX_VIRTUAL(CAddressDlg)protected:virtual void DoDat

10、aExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CAddressDlg)/ NOTE: the ClassWizard will add member functions here/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declaration

11、s immediately before the previous line.#endif / !defined(AFX_ADDRESSDLG_H_CFCFC94C_FAD5_4CCB_A891_A930EE48233B_INCLUDED_)AddressDlg.cpp(CAdressDlg 的实现部分)/ AddressDlg.cpp : implementation file武汉理工大学能力拓展训练报告书 8/#include “stdafx.h“#include “IE.h“#include “AddressDlg.h“#ifdef _DEBUG#define new DEBUG_NEW

12、#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddressDlg dialogCAddressDlg:CAddressDlg(CWnd* pParent /*=NULL*/): CDialog(CAddressDlg:IDD, pParent)/AFX_DATA_INIT(CAddressDlg)m_address = _T(“);/AFX_DATA_INIT武汉理工大学能力拓展训练报告书 9void CAddressDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExc

13、hange(pDX);/AFX_DATA_MAP(CAddressDlg)DDX_Text(pDX, IDC_EDIT_ADDRESS, m_address);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAddressDlg, CDialog)/AFX_MSG_MAP(CAddressDlg)/ NOTE: the ClassWizard will add message map macros here/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAddressDlg message handlersCIEView.h(CIEView 的类定义 )/ IE

14、View.h : interface of the CIEView class/武汉理工大学能力拓展训练报告书 10/#if !defined(AFX_IEVIEW_H_34C3677D_D9F9_4EA3_B673_FA6A4C232F66_INCLUDED_)#define AFX_IEVIEW_H_34C3677D_D9F9_4EA3_B673_FA6A4C232F66_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CIEView : public CHtmlViewprotected: / creat

15、e from serialization onlyCIEView();DECLARE_DYNCREATE(CIEView)/ Attributespublic:CIEDoc* GetDocument();/ Operationspublic:武汉理工大学能力拓展训练报告书 11/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CIEView)public:virtual void OnDraw(CDC* pDC); / overridden to draw this viewvirtual BOO

16、L PreCreateWindow(CREATESTRUCTprotected:virtual void OnInitialUpdate(); / called first time after construct/AFX_VIRTUAL/ Implementationpublic:virtual CIEView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext#endifprotected:/ Generated message map functionsprotected:武汉理工大

17、学能力拓展训练报告书 12/AFX_MSG(CIEView)afx_msg void OnBack();afx_msg void OnForward();afx_msg void OnHome();afx_msg void OnNavigate();afx_msg void OnRefresh();afx_msg void OnStop();/AFX_MSGDECLARE_MESSAGE_MAP();#ifndef _DEBUG / debug version in IEView.cppinline CIEDoc* CIEView:GetDocument() return (CIEDoc*)m

18、_pDocument; #endif/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / 武汉理工大学能力拓展训练报告书 13!defined(AFX_IEVIEW_H_34C3677D_D9F9_4EA3_B673_FA6A4C232F66_INCLUDED_)IEView.cpp(CIEView 的实现部分)/ IEView.cpp : implementation of the CIEView c

19、lass/#include “stdafx.h“#include “IE.h“#include “IEDoc.h“#include “IEView.h“#include “AddressDlg.h“#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CIEViewIMPLEMENT_DYNCREATE(CIEView, CHtmlView)武汉理工大学能力拓展训练报告书 14BEGIN_MESSAGE_MAP(CIEView, CHtmlView)/AFX_MSG_MA

20、P(CIEView)ON_COMMAND(ID_BACK, OnBack)ON_COMMAND(ID_FORWARD, OnForward)ON_COMMAND(ID_HOME, OnHome)ON_COMMAND(ID_NAVIGATE, OnNavigate)ON_COMMAND(ID_REFRESH, OnRefresh)ON_COMMAND(ID_STOP, OnStop)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CIEView construction/destructionCIEView:CIEView()/ TODO: add construction cod

21、e hereCIEView:CIEView()武汉理工大学能力拓展训练报告书 15BOOL CIEView:PreCreateWindow(CREATESTRUCT/ CIEView drawingvoid CIEView:OnDraw(CDC* pDC)CIEDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data herevoid CIEView:OnInitialUpdate()CHtmlView:OnInitialUpdate();武汉理工大学能力拓展训练报告书 16/ TODO

22、: This code navigates to a popular spot on the web./ change the code to go where youd like.Navigate2(_T(“http:/ CIEView diagnostics#ifdef _DEBUGvoid CIEView:AssertValid() constCHtmlView:AssertValid();void CIEView:Dump(CDumpContextCIEDoc* CIEView:GetDocument() / non-debug version is inlineASSERT(m_pD

23、ocument-IsKindOf(RUNTIME_CLASS(CIEDoc);return (CIEDoc*)m_pDocument;武汉理工大学能力拓展训练报告书 17#endif /_DEBUG/ CIEView message handlersvoid CIEView:OnNavigate()CAddressDlg dlg;if(dlg.DoModal()!=IDOK) return;Navigate2(dlg.m_address);void CIEView:OnBack() / TODO: Add your command handler code hereGoBack();void

24、CIEView:OnForward() / TODO: Add your command handler code hereGoForward();武汉理工大学能力拓展训练报告书 18void CIEView:OnHome() / TODO: Add your command handler code hereGoHome();void CIEView:OnRefresh() / TODO: Add your command handler code hereRefresh();void CIEView:OnStop() / TODO: Add your command handler cod

25、e hereStop();4 调试在编写程序完毕后开始调试过程。武汉理工大学能力拓展训练报告书 19首先打开程序,界面如图所示:目 录1技 术 要 求 .11.1技 术 目 标 .11.2主 要 任 务 .12基 本 原 理 .23方 案 设 计 .23.1方 案 原 理 .23.2系 统 功 能 .33.3系 统 流 程 图 .33.4详 细 设 计 .44调 试 .75总 结 .116参 考 文 献 .11图 3 初始界面武汉理工大学能力拓展训练报告书 20点击菜单操作选项下的打开网址,弹出对话框输入网址:图 4 打开网址搜索对话框武汉理工大学能力拓展训练报告书 21输入““,转到界面如图

26、:图 5 搜索网址后图经测试用户在浏览网页过程中,可以进行回到主页、前进、后退、停止、刷新等基本操作。武汉理工大学能力拓展训练报告书 225 总结本次能力拓展训练是我大学期间一来做的耗时最长最辛苦也是最认真的一次。在起初一段时间,由于贪玩导致我整个暑假并没有查阅或者学习有关 VC 网络编程的知识。在假期结束以后又弄错时间,导致在交期前一天才开始动手做本次能力拓展训练,十分被动。令我沮丧的是在交期到来我并未完成任务,在使用 navigate2 函数的时候总是显示 undeclared identifier。再历经几十个小时以后依然无法解决这个问题。在查阅了很多书籍和资料以后,我尝试放弃使用 IE

27、 风格的 ToolBar,转而使用菜单栏直接完成设计,用户用鼠标操作完成搜索,前进,后退等行为。并且给输入网址方面专门建立了一个对话框,成功代替 IE 风格中我想直接显示的地址栏。在不断尝试和修改的过程中我更加深刻的体会到作为一个编程人员,不仅需要对程序在大方向上有正确的理解,在细节方面更要非常严谨。如果忽视了一些小的细节,面临的很可能就是失败。在数次尝试以后我终于获得成功,倍感辛苦之余也很高兴自己可以完全凭借自己的力量完成本次能力拓展训练。6 参考文献1 李建华,王占全 .visual C+编程:从基础到实践 .第一版.电子工业出版社,20072揣锦华.面向对象程序设计与 VC+实践.第一版, 2005

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报