物联网工程课程设计-泽宇网络浏览的设计与实现(源代码).docx_第1页
物联网工程课程设计-泽宇网络浏览的设计与实现(源代码).docx_第2页
物联网工程课程设计-泽宇网络浏览的设计与实现(源代码).docx_第3页
物联网工程课程设计-泽宇网络浏览的设计与实现(源代码).docx_第4页
物联网工程课程设计-泽宇网络浏览的设计与实现(源代码).docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

源代码加153893706课程设计报告( 2015 / 2016 学年 第1学期)题 目:网络浏览器的设计与实现 专 业 物联网工程 姓 名 学 号 指导教师 指导单位 物联网学院 日 期 2016.1.14 评分细则评分项成绩遵守机房规章制度(5分)上机时的表现(5分)学习态度(5分)程序准备情况(5分)程序设计能力(10分)团队合作精神(5分)课题功能实现情况(10分)算法设计合理性(10分)用户界面设计(10分)报告书写认真程度(5分)内容详实程度(10分)文字表达熟练程度(10分)回答问题准确度(10分)简短评语教师签名:年月日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格网络浏览器的设计与实现一、 课题内容和要求设计并实现仿IE或chrome的方便好用的网络浏览器,该浏览器有简单直观的操作界面,能够帮助用户实现基本的网页浏览、下载等功能。要求实现的最基本的功能如下: 能够在地址栏输入URL地址,然后搜索web信息返回浏览器,供用户浏览和利用; 能够在地址栏下拉列表中选择框URL地址,并能搜索和返回; 实现浏览网页的基本功能,如前进、后退、刷新等; 能够自己打开主页; 能够打开收藏夹,打开保存的网站; 能够打开Html等文件并可以Save网页; 能够打开网页中的超链接,并建立新的标签窗口; 支持浏览本地文件,用户在输入框中输入文件所在盘符及具体路径,并按回车键,或者点击界面上相应按钮,实现浏览本地文件的功能; 具备下载功能,能下载网络中的文件; 支持网页打印功能; 其他创新功能,如播放网页音频等。二、需求分析 系统需求 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL指定,文件格式通常为HTML,并由MIME在HTTP协议中指明。一个网页中可以包括多个文档,每个文档都是分别从服务器获取的。在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,同时也越来越离不开浏览器,人们利用浏览器可以查看很多东西,上淘宝,需要浏览器,上百度搜索东西,需要浏览器,打开网站网址,需要浏览器。由此浏览器的种类也越来越多,如IE浏览器、谷歌浏览器、360浏览器、遨游浏览器等等。因此,浏览器对于人们的生活起着举足轻重的作用,浏览器的作用范围将不断扩大,人们的生活将离不开浏览器的使用。 浏览功能: 能够在地址栏输入URL地址,然后搜索web信息返回浏览器,供用户浏览和利用; 搜索功能: 能够在地址栏下拉列表中选择框URL地址,并能搜索和返回; 基本功能:实现浏览网页的基本功能,如后退、前进、刷新等; 主页功能: 当我们想转回到主页上时,我们可以点击表示主页的功能键,返回到主页。 收藏夹功能: 在我们用浏览器进行网页浏览的时候,会遇到自己需要的值得收藏的网页,这个时候我们可以通过浏览器上的收藏夹功能来把网页保存起来,等在下一次我们需要的时候,可以调出来浏览。 超链接功能: 能够打开网页中的超链接,并建立新的标签窗口; 查看网页源文件:能够打开Html等文件; 浏览本地文件功能:支持浏览本地文件,用户在输入框中输入文件所在盘符及具体路径,并按回车键,或者点击界面上相应按钮,实现浏览本地文件的功能; 其他功能: 具备下载功能,能下载网络中的文件; 支持网页打印功能; 三、概要设计(一)实现WEB站点浏览,初步完成浏览器的模块的建立以及实现工具栏的各个功能(如:前进.后退,刷新,主页,停止以及搜索等功能)。1.利用MFC AppWizard生成应用程序框架2.修改菜单3.修改工具栏4.为控件添加时间处理函数5.添加事件处理函数的代码6.为应用程序添加URL定位功能7.解决单击超级链接时地址栏的同步问题8.修改首页地址,以及主页地址和搜索页面。(二)加入删除IE相关历史记录的功能(包括删除文档历史纪录,清除cookies,清除Internet临时文件,清除地址栏中的历史任务,清除密码历史纪录和清除收藏夹)。1.添加“删除”菜单2.为控件添加事件处理函数3.添加事件处理函数的代码(三)加入IE收藏夹功能和设置桌面快捷方式功能。1. IE收藏夹功能2. 设置桌面快捷方式功能(四)显示浏览器当前访问站点的标题(附加功能)四、详细设计(一)工程名为myWeb16。第一步,选择工程类型为单文档(SDI),中文语言支持。第二步和第三步使用默认值,不需要数据库,也不提供对于复合对象的支持;第四步选择Internet Explorer ReBars工具栏的风格,这样就有了用来输入网址的文本框;第五步不做任何修改;第六步选择CHtmlView类作为视图类的基类。生成工程框架包含4个类。(1) 应用程序类:CMyWeb16App,对应myWeb16.h和myWeb16.cpp文件。(2) 框架类:CMainFrame,对应MainFrm.h和MainFrm.cpp文件。(3) 文档类:CMyWeb16Doc,对应myWeb16Doc.h和myWeb16Doc.cpp文件。(4) HtmlView类:CMyWeb16View,对应myWeb16View.h和myWeb16View.cpp文件。此时编译运行,程序已经具有基本的Web浏览功能,能自动链接到微软公司的网站。为应用程序添加URL定位功能(1)添加网址输入栏控件。在工作区中选择“Resource View”选项卡,选择Dialog,双击对话框控件的名字(IDR_MAINFRAME),右边出现对话框条。在上面添加一个“地址”的静态文本,再添加一个文本编辑框控件,ID号时IDC_ADDR,作为地址栏,提供给用户输入要浏览的网站地址。如图1.6所示。(2)添加控制代码。当用户输入网址后按回车时,就有一个IDOK的消息发送到主框架类,添加处理这个消息的控制函数,在该函数中,用指定的网址调用Navigate()和Navigate2()函数 ,就可以实现对该网页的浏览。在MainFrm.h文件中,添加消息处理函数的声明。public:void OnNew();在MainFrm.cpp文件中,添加该函数的实现代码。void CMainFrame:OnNew()CString pp; /获得用户在地址栏中输入的URLm_wndDlgBar.GetDlgItem(IDC_ADDR)-GetWindowText(pp); /浏览指定的网页(CMyWeb16View*)GetActiveView()-Navigate(pp);建立事件处理函数与消息的映射在MainFrm.cpp的文件中,在消息映射(MESSAGE_MAP)段中添加自己的消息映射宏。用ON_COMMAND命令建立IDOK消息和处理函数OnNew的映射关系。BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)/AFX_MSG_MAP(CMainFrame)ON_WM_CREATE()/AFX_MSG_MAPON_COMMAND(IDOK,OnNew) /自己的消息映射宏END_MESSAGE_MAP()在myWeb16View.h文件的类定义前面添加包含语句#includemyWeb16Doc.h(二)为控件添加事件处理函数进入类向导,选择“Message Maps”选项卡。在“Class Name”下拉列表框中选择CMyWeb16View类,然后按照表2.4为上述删除的六个控件添加事件处理函数。对象IDMessagesMember FunctionID_DelHistoryCOMMANDOnDelHistory() ID_DelCookiesCOMMANDOnDelCookies()ID_DelIntenetTempFileCOMMANDOnDelIntenetTempFile()ID_DelHistoryAddressCOMMANDOnDelHistoryAddress() ID_DelHistoryPasswordCOMMANDOnDelHistoryPassword()(三)删除收藏夹内容在CFavoritesTryDlg.cpp的文件中,添加以下代码:void CFavoritesTryDlg:OnDelFavoritesMenu() /清收藏夹中的内容TCHAR szPathMAX_PATH;if (SHGetSpecialFolderPath(NULL, szPath, CSIDL_FAVORITES, FALSE)/得到目录,并清空 EmptyDirectory(szPath); EndDialog(IDOK);(CFavoritesTryDlg.cpp文件中引用到的函数EmptyDirectory()与功能(二)中函数一样。)在CFavoritesTryDlg.h文件中,声明EmptyDirectory函数。public:BOOL EmptyDirectory(LPCTSTR szPath,BOOL bDeleteDesktopIni=false,BOOL bWipeIndexDat=false); (3)添加收藏夹void CMyWeb16View:OnAdd() #define ID_IE_ID_ADDFAV 2261 HWND oleHwnd = :FindWindowEx(m_wndBrowser.m_hWnd, NULL, _T(Shell DocObject View), NULL); HWND ieHwnd=:FindWindowEx(oleHwnd, NULL, _T(Internet Explorer_Server), NULL); :SendMessage(ieHwnd , WM_COMMAND, MAKEWPARAM(LOWORD(ID_IE_ID_ADDFAV), 0x0), 0 );设置桌面快捷方式功能添加按钮“创建快捷方式”修改对话框控件(IDR_MAINFRAME),添加按钮“创建快捷方式”与编辑框,如下图所示。对话框条目名称(Caption)ID号创建快捷方式IDC_SHORTCUT编辑框IDC_shortcutname对象IDMessagesMember Function IDC_SHORTCUTCOMMAND OnShortcut()添加代码如下:void CMainFrame:OnShortcut() CString pp; /获得用户在地址栏中输入的URLm_wndDlgBar.GetDlgItem(IDC_ADDR)-GetWindowText(pp);CString pp1; /获得用户在地址栏中输入的URLm_wndDlgBar.GetDlgItem(IDC_shortcutname)-GetWindowText(pp1);IShellLink *MyLink;/IShellLink 接口指针IPersistFile *ppf; /另一个接口指针char DesktopLocateMAX_PATH;/存储快捷方式在桌面保存的位置/桌面的位置SHGetSpecialFolderPath(NULL,DesktopLocate,CSIDL_DESKTOP,0);/以下设定快捷方式在桌面保存位置strcat(DesktopLocate,);strcat(DesktopLocate,pp1);strcat(DesktopLocate,.LNK);CoInitialize(NULL);/初始化COMint re=CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_ALL, IID_IShellLink,(void *)&MyLink);if(reSetPath(pp);/设置快捷方式实际文件位置MyLink-SetDescription(pp1);/设置快捷方式描述(即名称)re=MyLink-QueryInterface(IID_IPersistFile, (void *)&ppf);if(reRelease();return;WCHAR wszMAX_PATH;MultiByteToWideChar( CP_ACP,0,DesktopLocate,-1,wsz,MAX_PATH);/转换为unicodeppf-Save(wsz,true);/在桌面创建快捷方式ppf-Release();MyLink-Release();AfxMessageBox(快捷方式创建成功.);(四)显示浏览器当前访问站点的标题(附加功能)实现此项功能需要重载CHtmlView:OnTitleChange,添加代码如下:void CMyWeb16View:OnTitleChange(LPCTSTR lpszText)CHtmlView:OnTitleChange(lpszText);AfxGetMainWnd ()-SetWindowText (lpszText);五、测试数据及其结果分析起始页:“删除”功能打开注册表,查找主键HKEY_CURRENT_USER下的键值“SoftwareMicrosoftInter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论