vc++8教学ppt课件

vc++8教学ppt课件

ID:33442158

大小:1.46 MB

页数:70页

时间:2018-05-24

vc++8教学ppt课件_第1页
vc++8教学ppt课件_第2页
vc++8教学ppt课件_第3页
vc++8教学ppt课件_第4页
vc++8教学ppt课件_第5页
资源描述:

《vc++8教学ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VisualC++程序设计东北大学陈东明2021/7/121第8章文档视图结构8.1可重用的FrameWindow基类8.2从视图中分离文档8.3文档的读写8.4打印和打印预览8.5拆分窗口与多视图2021/7/1228.1可重用的FrameWindow基类C++允许程序开发人员生成可重用的“软件组件”,这些组件可以很容易地应用到应用程序中。可重用基类难以编写对于可重用的基类,用户必须预测将来程序设计的需要,包括自己和其他用户。用户必须编写一个常规的、完全的、有效的并且容易使用的类。在一个产品设计环境中,可

2、重用的基类可能会放弃常规的软件开发周期。为一个项目所编写的类要用于另外一个项目的话,可能需要扩展和把它深层次地一般化。如果用户长期从事于软件商业,动手建立真正可以重复使用的组件是非常有益的。2021/7/123CPersistentFrame类CPersistentFrame类是从CFrameWnd派生来的。CPersistentFrame类支持记忆下列特征值的可持续SDI框架窗口。窗口尺寸窗口位置最大化状态最小化状态工具栏和状态栏的启用情况和位置当用户结束用CPersistentFrame类建立的应用程序

3、的时候,上述信息会保存在硬盘上的WindowsRegistry(注册表)中。当应用程序再次启动的时候,它就读取注册表并把框架恢复到上次退出时的状态。用户可以在任何SDI应用程序中使用这个可持续的视图类,只用CPersistentFrame来代替应用程序派生框架文件中的CFrameWnd。2021/7/124CFrameWnd类和ActivateFrame成员函数在一个MFCSDI应用程序中,主框架窗口总是视图窗口的父窗口。这一框架窗口先创建,然后,控制栏和视图作为子窗口创建。应用程序主框架保证子窗口在用户改

4、变框架窗口的大小时正确地扩大和缩小。在框架创建之后改变视图的尺寸没有意义。控制框架尺寸的关键是CFrameWnd::ActivateFrame成员函数。应用程序框架在SDI主框架创建过程中调用这个虚拟函数。框架的任务是以nCmdShow参数调用CWnd::ShowWindow函数。ShowWindow使连带菜单、视图窗口和控制栏一起的框架窗口显示出来。如果用户重载派生框架类中的ActivateFrame,那么可以在把参数传递到CFrameWnd::ActivateFrame函数之前改变nCmdShow的值。

5、还可以调用设置框架窗口的大小和位置的CWnd::SetWindowPlacement函数来设置控制栏为可见状态。因为所有的变化在框架窗口变得可见之间完成,所以屏幕上不会有讨厌的闪烁。2021/7/125PreCreateWindow成员函数在CWnd中说明的PreCreateWindow,是另外一个用户可以重载它以便在窗口显示之前改变窗口特性的虚拟函数。框架在调用ActivateFrame之前调用该函数。AppWizard总是在项目的视图和框架窗口类中产生一个PreCreateWindow函数。这个函数有一

6、个CREATESTRUCT结构参数,在这个结构中有两个数据成员style和dwExStyle。用户可以在把这个结构传向基类的PreCreateWindow函数之前修改这些数据成员。style标志决定了窗口是否有边界、滚动条、最小化框等等。dwExStyle标志控制着其他的特性。CREATESTRUCT的成员lpszClass对改变窗口的背景刷、光标和图标也是非常有用的。在一个框架窗口中改变这些是毫无意义的,因为视图窗口覆盖了这一客户区域。如果用户重载了可持续框架类中的PreCreateWindow函数,所有

7、派生类的窗口将都使用在基类中设计的这些特性。2021/7/126Window注册表如果使用了Win16位基础上的应用程序,可能会看到INI文件。在Win32位基础上的应用程序仍然可以使用INI文件,但是Microsoft建议用户用Window注册表来代替它。注册表是作为一种分层数据库来组织的,在数据库中字符串和整数数据通过多部件键来访问。MFC库提供了四种CWinApp成员函数,来延长使用INI文件的日期和访问注册表。从VC++5.0开始,AppWizard在应用程序的InitInstance函数中产生一个

8、如下所示的对CWinApp::SetRegistryKey的调用。SetRegistryKey(_T(“LocalAppWizard-GenereatedApplications”));如果删除这一调用,应用程序就不能使用注册表,但是会在windows目录中使用一个INI文件。2021/7/127SetRegistryKey函数的字符串参数确定了层次的最高层,下面的注册表函数定义了底部的两个层次:调用标题名和入口

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

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

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