vc++.net编程讲座之六

vc++.net编程讲座之六

ID:25894193

大小:199.50 KB

页数:10页

时间:2018-11-23

vc++.net编程讲座之六_第1页
vc++.net编程讲座之六_第2页
vc++.net编程讲座之六_第3页
vc++.net编程讲座之六_第4页
vc++.net编程讲座之六_第5页
资源描述:

《vc++.net编程讲座之六》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC++.NET编程讲座之六摘要  本讲先来介绍MFC中的"一档多视"模式,并为Viewer添加一个用于显示Web页的视图CWebView,然后讨论两种比较常用的单文档视图的切换方法,最后对这两种方法进行分析和比较。  MFC"一档多视"模式  我们知道,MFC应用程序用一种编程模式使程序中数据与它的显示形式和用户交互分离开来,这种模式就是"文档/视图结构"。在单文档应用程序结构中,一个文档对应于一个视图。但有时一个文档可能需要多个视图以改变文档数据的显示方式,称为"一档多视",MFC对于这种"一档多视"提供下列三个模式:  第一种模

2、式是用在多文档应用程序中,用同一个视图类创建多个视图对象,并在各自的窗口中显示。例如,当我们选择"窗口"菜单的"新建窗口"命令,程序就会打开一个新的窗口显示出相同的文档内容。在界面上表现为,一个框架窗口中有多个文档窗口,如图1(a)所示。  第二种模式是动态切分窗口方式,即在同一个文档窗口中创建多个视图,用同一方式来显示相同的文档内容。如图1(b)所示。  第三种模式是静态切分窗口方式,即在同一个文档窗口中创建多个视图,但每个视图可用不同的方式来显示文档内容。如图1(c)所示。(a)(b)(c)  图1"一档多视"的三种模式但在本讲中

3、所讨论的"一档多视"是指在单文档应用程序中具体多个视图的特性。文档窗口每次只有一个视图显示,但可以通过菜单等命令在多个视图中进行切换。我们的目是将文档内容在"普通文本"和"HTML浏览"视图之间进行切换,如图2(a)和2(b)所示。(a)(b)图2视图切换的结果  添加"HTML浏览"视图  为了使我们的这个文本浏览器功能更加强大,我们添加一个"HTML浏览"视图用来正确显示出扩展名为.htm或.html等的Web页效果。  1.添加视图类CWebView  我们先来添加一个视图类CWebView,具体步骤如下:  (1)启动Visu

4、alStudio.NET,打开上一讲的单文档应用程序项目Viewer。  (2)打开"项目"菜单,单击"添加类",弹出"添加资源"对话框,展开左边的所有"类别",单击"MFC",在右侧模板中选中"MFC类",如图3所示。图3"添加类"对话框 (3)单击"打开"按钮,弹出"MFC类向导"对话框。在对话框中输入"类名"CWebView,然后将基类选择为CHtmlView,CHtmlView类封装了URL资源的浏览和链接等功能。其它为默认值,结果如图4所示。图4使用"MFC类向导" (4)单击"完成"按钮。 2.添加代码并测试CWebVie

5、w (1)打开CWebView类的接口文件WebView.h,在最前面加上CHtmlView类的包含文件""。 (2)为CWebView类添加OnInitialUpdate函数的重载,并添加如图5加框部分的代码。图5在OnInitialUpdate中添加的代码 (3)打开CViewerApp::InitInstance函数,将CSingleDocTemplate中的第4个参数的视图类由原来的CViewerView改为CWebView。 (4)在CViewerApp类的实现文件前面加上""。 (5)运行程序。图6是显示某个文件的结果。图

6、6CWebView类的显示效果(6)再把CViewerApp::InitInstance函数中的CSingleDocTemplate参数CWebView改回到CViewerView。最一般的切换方法  对于单文档框架窗口中的多个视图的切换,我们先看看大多数VisualC++程序员普遍采用的一种方法。具体过程如下:  (1)打开Viewer项目的Menu资源IDR_MAINFRAME,在"视图"菜单中添加三个菜单项,一个是水平线(分隔符),一个是"普通文本(&G)",ID号设为ID_VIEW_TEXT,最后一个是"HTML浏览(&H)"

7、,ID号设为ID_VIEW_HTML。结果如图7所示。图7在"视图"中添加的菜单项(2)视图切换的代码应该添加在CMainFrame类中。我们先在CMainFrame类添加一个切换函数SwitchToView1,代码如图8所示。图8SwitchToView1函数代码函数SwitchToView1用了一些底层的MFC调用,我们来看看其代码执行过程。如果主程序框架窗口一开始就激活CViewerView,即pOldView指向CViewerView,则当在程序中调用SwitchToView1(1)时,即参数nView为1,该函数中的第一行代

8、码用来获得当前活动的视图,第二行代码是通过GetDlgItem获得标识为1的窗口指针,由于视图也是一个窗口,所以可以直接进行指针类型的强制转换。第一次调用时,标识为1的窗口指针是不存在的,因而这个视图指针就是NULL,从

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。