SDI程序的窗口切分与一档多视实践
需积分: 9 125 浏览量
更新于2024-08-20
收藏 3.34MB PPT 举报
"本资源主要讲解了SDI(单文档界面)视图的学习,包括SDI程序的窗口静态切分和一档多视编程实例,旨在帮助学习者理解如何在Windows程序设计中实现复杂的用户界面。作者为于东,内容源于2014年的第十一周课程。"
在Windows程序设计中,SDI(Single Document Interface)程序设计模式允许用户在一个窗口中处理单一文档。然而,为了实现更复杂的功能和提供多样化的显示方式,通常需要对SDI程序的窗口进行切分,创建多个视图(View)来展示不同的数据或表达方式。
1. **SDI程序的窗口切分**
SDI程序默认只有一个窗口和视图对象,但通过窗口切分,可以将窗口分割成两个或更多的子窗口,每个子窗口对应一个独立的视图。这样做不仅可以丰富界面,还能实现多角度、多层次的数据展示。例如,一个文档类可以对应多个视图,每个视图负责显示数据的不同方面或使用不同的显示样式。
2. **一档多视的概念**
在SDI中,尽管只有一个文档类,但可以有多个视图与其关联。文档作为数据存储,而多个视图则用于以不同的方式呈现这些数据,或者将数据拆分成多个部分,分别在各自的视图中显示。数据更新的同步机制类似于Dlg程序中的UpdateData函数,但在SDI程序中,文档类通过调用UpdateAllViews函数通知所有视图更新数据,其中的lHint参数可以用来识别需要更新的具体视图。
3. **一档多视的数据流**
当SDI程序中有多个视图时,数据更新通常由发现变化的视图触发,调用GetDocument->UpdateAllView,文档会更新数据,然后调用所有视图的OnUpdate函数进行视图更新。通过lHint参数的传递,可以精确控制哪些视图需要执行特定的更新操作。
4. **SDI程序的窗口静态切分与一档多视编程实例**
实例中,通过在MainFrm(主框架)中进行编程,将主窗口划分为左右两部分,每部分使用不同的视图类。MainFrm作为所有视图的容器,对它的修改直接影响到视图的布局。要实现不同视图,可以创建新的视图类,如添加CW9_1EditView和FormView类。添加新视图类通常通过向项目中添加新类并选择相应的基类(如CView或FormView)来完成。
5. **编程步骤**
- **Step1**:首先创建一个基于CView的基本SDI程序。
- **Step2**:通过Ctrl+W添加新视图类,如CW9_1EditView。
- **Step3**:接着,通过Ctrl+R插入一个FormView对话框,可以修改其ID并添加新类。
通过以上步骤和实例,学习者能够掌握如何在SDI程序中实现窗口切分和一档多视,从而构建更加灵活和功能丰富的用户界面。这种技术在开发多面板、多功能的Windows应用程序时非常有用。
1007 浏览量
2009-03-01 上传
2023-05-17 上传
2023-06-10 上传
2024-07-25 上传
2023-11-25 上传
2023-06-10 上传
2023-12-21 上传
2023-06-01 上传
2023-06-12 上传
VayneYin
- 粉丝: 23
- 资源: 2万+
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展