当前位置: 首页 > 图文教程 > 开发语言 > C/C++ > 托管C++程序开发—Win表单文档程序设计(中)

C/C++
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
Visual C++6.0 API函数操作技巧集
托盘编程全接触
在Visual C++中使用内联汇编
理解 Visual C++ Extensions for ADO
TCP/IP Winsock编程要点
VC打造自己特色的屏幕保护
Windows Sockets API实现网络异步通讯
程序界面多模式显示的实现
VC++6.0中控制运行唯一实例
WDM驱动程序设计之编译安装篇
VC编程中如何操作数据库中的图像字段
Windows 9X硬件中断设备驱动程序的开发
用控件聚合技术为FlexGrid增添PickList功能
用ATL和MFC来创建ActiveX控件
用VC进行COM编程所必须掌握的理论知识

C/C++ 中的 托管C++程序开发—Win表单文档程序设计(中)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 174 ::
收藏到网摘: n/a

  幸好,我们对MFC的文档、视图和框架类之间的联系的作用有了一定的了解,因此编写托管C++的文档应用程序倒觉得不那么复杂。那么,事情该如何进行呢?

  一、.NET框架中文档应用程序的机制

  .NET框架只提供多文档应用程序的机制,这是因为在单文档应用程序中,文档窗口可以用相应的控件来代替(如上一篇的综合示例),由于视图也是一个窗口,因此.NET框架没有“视图类”的概念,也没有“单文档”概念,也就是说.NET框架不再使用MFC的“文档/视图”机制。.NET框架使用下列的文档应用程序的创建机制:

  1、主框架窗口的创建

  MDI(多文档)应用程序的主框架窗口与前面所说的Win表单窗口没有太大的区别,所不同的是:这里的主框架窗口只是将其IsMdiContainer属性设置为true。通常菜单栏、工具栏和状态栏也在此窗口中添加,添加的方法前面已介绍过。

  2、子窗口的创建

  子窗口也称MDI的文档窗口,它也是从Form类派生而来,它的设计和构造方法同一般Win表单窗口是一样的,可以添加相应的控件。由于MDI的文档窗口是属于主框架窗口的,因此在具体实例化的时候要指定相应的MDIParent。

  3、文档窗口的操作

  .NET框架对MDI中的文档窗口提供了直接的支持,这包括文档窗口的布局显示、在菜单中显示出文档窗口列表以及当前文档窗口的获得等,下面分别讨论。

  (1) 文档窗口的布局显示

  在Form类中包含一个LayoutMdi方法,允许用户在主框架窗口调用方法使用所有的文档窗口按一定的方式排列布局,其参数可以是:

  MdiLayout::ArrangeIcons —— 在主框架窗口的客户区中显示各个文档窗口的图标
  MdiLayout::Cascade —— 层叠显示
  MdiLayout::TileHorizontal —— 在主框架窗口的客户区中从上到下显示各个文档窗口
  MdiLayout::TileVertical —— 在主框架窗口的客户区中从左到右显示各个文档窗口

  (2) 在菜单中显示出文档窗口列表

  想要在主框架中的某个菜单项显示出所有文档窗口,以便通过菜单项切换相应的文档窗口,.NET框架提供最直接也是最简单的方法,只要将该菜单项的MdiList属性设为true即可。

  (3) 当前文档窗口的获得

  当向文档窗口传送数据或进行相关文档操作时,都可能需要获取当前文档窗口的指针以便进行相关操作。当前文档窗口的获得是通过主框架窗口的ActiveMDIChild属性来实现的。例如下面的代码:

Form *curChild = this->ActiveMdiChild;