12CMFC课程设计之浏览器.docx
《12CMFC课程设计之浏览器.docx》由会员分享,可在线阅读,更多相关《12CMFC课程设计之浏览器.docx(10页珍藏版)》请在冰豆网上搜索。
![12CMFC课程设计之浏览器.docx](https://file1.bdocx.com/fileroot1/2023-1/7/5da7e82c-89e3-4519-a0b7-c3712fd458dd/5da7e82c-89e3-4519-a0b7-c3712fd458dd1.gif)
12CMFC课程设计之浏览器
大学
C++面向对象课程设计报告
此工程源代码下载地址:
院(系):
计算机工程学院
专业:
学生姓名:
__
班级:
_____ 学号:
题目:
浏览器_________
起迄日期:
_——
设计地点:
指导教师:
完成日期:
2011年7月12日
一、课程设计目的
1、学习VC有关网络编程的方法。
2、利用模式对话框实现浏览器外观界面的设计。
3、利用VC下有关ChtmlView类来实现浏览器的有关导航功能。
二、课程设计内容与实现的功能
随着互联网在世界范围的广泛应用,网络浏览器便是信息交流中必不可少的工具。
本题目要求同学在熟练掌握VC下有关网络编程理论的基础上,实现一个能够浏览网页的浏览器,实现基本的网址浏览、后退、前进、刷新、停止等功能。
1、系统分析与设计
1、系统分析
CHtmlView类的主要功能是访问Web网站和HTML文档。
这是由于CHtmlView类在MFC的文档/视图结构(MFC'sdocument/viewarchitecture)环境中,进一步提供了WebBrowser控件的功能,可以说CHtmlView类是对WebBrowser控件的封装。
WebBrowser控件支持通过超链接和统一资源定位器URL导航的Web浏览。
使得应用程序成了一个Web浏览器(webbrowser)。
要创建一个Web浏览器型的应用程序,可以使用CHtmlView类。
通过MFC应用程序向导实现。
CHtmlView类的成员函数
获取和设置属性(Attributes)的成员函数
(1)CStringGetType()const;
(2)longGetLeft()const;
voidSetLeft(longnNewValue);
(3)longGetTop()const;
voidSetTop(longnNewValue);
(4)longGetHeight()const;
voidSetHeight(longnNewValue);
(5)BOOLGetVisible()const;
voidSetVisible(BOOLbNewValue);
其它的函数就不一一列举了。
主要的操作(Operations)成员函数
这些成员函数非常有用,常常用在应用程序中。
voidGoBack();导航到历史列表的前一个条目(previousitem)。
voidGoForward();导航到历史列表的下一个条目。
voidGoHome();导航到主页,该主页在IE的属性中设置。
voidGoSearch();导航到当前搜索页。
该页在IE的属性中设置。
voidRefresh();重新装入浏览器当前正在显示的URL或者文件,即刷新。
voidStop();撤销任何未完成的导航或下载,并且停止任何动态的页面元素,例如背景音乐和动画。
Navigate导航到由URL指定的资源。
Navigate2导航到由URL指定的资源或者由全路径指定的文件。
PutProperty设置与所给定的对象相关的属性的当前值。
GetProperty返回与所给定的对象相关的属性的当前值。
ExecWB执行一个命令。
LoadFromResource在WebBrowser控件中装入一个资源。
2、系统设计:
1.利用MFCAppWizard生成应用程序框架
工程名为MyLastBrowser,第一步,工程类型为单文档(SDI),中文语言支持。
第二步和第三步使用默认值,不需要数据库,也不提供对于复合对象的支持。
第四步选择InternetExplorerReBars工具栏的风格,这样就有了用来输入网址的文本框。
第五步不作任何修改,第六步应选择CHtmlView类作为视图类的基类。
生成的工程框架包含四个类:
应用程序类,CMyLastBrowserApp,对应和文件。
框架类,CMainFrame,对应和文件。
文档类,CMyLastBrowserDoc,对应和文件。
HtmlView类,CMyLastBrowserView,对应和文件。
此时编译运行,程序已经具有了基本的Web浏览功能,能自动连到微软的网站。
2.修改菜单
修改菜单,添加用户需要的功能条目。
在工作区中选择ResourceView卡,选择Menu,双击菜单控件的名字(IDR_MAINFRAME),右边出现程序的菜单。
点击菜单中的“查看”项,已经有了“工具栏”和“状态栏”两个条目,双击下面的空框,弹出设置菜单条目属性对话框。
(如图1-1,表1-1)
图1-1
3.修改工具栏
在工具栏上增加新的按钮,以便快速执行所需的功能。
在工作区中选择ResourceView卡,选择ToolBar,双击工具条控件的名字(IDR_MAINFRAME),右边出现程序的工具条。
双击其中的按钮,可以看到它们的属性。
其中有一个空的按钮,双击它可以添加新的按钮的属性。
本应该添加六个按钮,它们的ID号与相应的菜单条目相同,但是在浏览器界面我隐藏了系统原来的工具栏加上了我自己截取360浏览器的前进后退的图标。
(如图1-2)
图1-2
4.为控件添加事件处理函数
当用户点击菜单条目,或者点击相应的快捷按钮时,应能引起程序的反映,这就需要给这些控件添加事件处理函数。
进入类向导,选择“MessageMaps”卡。
在“ClassName”下拉框中选择CMyLastBrowserView类,为前述的六个控件添加事件处理函数。
图1-3
5.添加事件处理函数的代码
在实现文件中,添加上述六个事件处理函数的代码。
etButtonWidth(20,120);
().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
(IDB_BITMAP3,34,0,RGB(255,0,255));
().SetHotImageList(&img);
();
(IDB_BITMAP4,34,0,RGB(255,0,255));
().SetImageList(&img);
();
(0,TBSTYLE_FLAT|TBSTYLE_TRANSPARENT);
(NULL,6)
(0,ID_BACK,TBSTYLE_BUTTON,0);
(ID_BACK);
(0,str);
(1,ID_FOWARD,TBSTYLE_BUTTON,1);
(ID_FOWARD);
(1,str);
(2,ID_STOP,TBSTYLE_BUTTON,2);
(ID_STOP);
(2,str);
(3,ID_UPDATE,TBSTYLE_BUTTON,3);
(ID_UPDATE);
(3,str);
(4,ID_HOMEPAGE,TBSTYLE_BUTTON,4);
(ID_HOMEPAGE);
(4,str);
(5,ID_SEARCH,TBSTYLE_BUTTON,5);
(ID_SEARCH);
(5,str);
etBandInfo(0,&rbbi);
=0;
CRectrectAddress;
=RBBIM_CHILDSIZE|RBBIM_IDEALSIZE;
()->GetWindowRect(&rectAddress);
=()+15;
=200;
().SetBandInfo(2,&rbbi);
()|
CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_FIXED);
Navigate2(_T(""),NULL,NULL);
}
谢黄维通.VisualC++面向对象与可视化程序设计(第2版).北京:
清华大学出版社,
4.刘路放.VisualC++与面向对象程序设计教程(第二版).北京:
高等教育出版社,
5.潘爱民.COM原理与应用.北京:
清华大学出版社,
九、课程设计评价(由任课教师填写)
课程设计评价
成绩:
教师:
年月日