控件篇——MDI桌面框架

用Flex实现类似Windos的桌面效果,包括工具栏、窗体等。系统以桌面为容器的好处就是能够装载各种的子系统和应用,而不会有概念上的不一致,因为是windows的理念,海纳百川,而且能带来较熟悉的用户体现。

 

工具栏:设计在顶部,因为Flex应用运行在浏览器上,如果放在下方会跟windows的工具栏靠近,显示重复。

窗体:桌面框架的核心容器。主要的功能有:最小化,最大化,关闭,四边框四角调整大小,窗体移动,图标+文字标题,windows效果边框效果。

 

窗体最大化

模式对话框

 

注意,这是未完成版本!!! 由于作者工作原因,暂时没有时间完成,但是基本功能已经实现,有个小问题如果你解决了欢迎发送给我,谢谢! 请用VS2010打开。内含四个DLL工程,及一个DLL 的测试工程。 其中一个问题是,打开子窗口之后子窗口内容没有显示,单击子窗口客户区之后其内容才显示,目前作者没有解决。 /************************************************************************/ /* MdiPlus框架说明 */ /************************************************************************/ /** 项目名称: MdiPlus框架 版本号: v1.0.1 第一作者: Jef 地址: 中国/江苏 日期: 20100616 电子邮箱: dungeonsnd@126.com 版权: 1.本框架完全开源。您可以免费使用本程序,但在用于商业用途前请获得第一作者的许可。 2.您使用本程序而导致任何伤害以及经济损失,由过错方依法承担所有责任, 一概与第一作者及合作单位无关。 3.如果您使用本程序则表示您已经同意此版本协议!否则请勿使用! 项目功能: MdiPlus框架是在Windows平台下把SDI程序行为与MDI程序行为结合在一起的编程手段。 框架最适合: a.以GDI方式输出为主的应用程序。 b.需要多种文档模板输出的MDI程序。 c.需要一个类似于SDI应用程序的固定(禁止改变大小)的View进行绘图。 框架充分进行模块化,把MDI的窗口创建类放在一个单独的DLL中(DllMdiWnd.dll),开发者应该继承 这个类来得到一个文档模板(这样继承者不必考虑创建细节,只负责绘图),并且每一个文档模板最好 放到一个DLL中(如ADoc.dll,BDoc.dll,CDoc.dll)。开发者建立主程序来调用ADoc.dll,BDoc.dll, CDoc.dll,每个文档模板(如ADoc.dll)可产生多个对应子窗口。 不过,DllMdiWnd.dll并没有提供view/doc支持,它的职责只是创建及销毁调用者的需要子窗口。 (如果子窗口是new创建出来的,ADoc.dll的基类CMdiPlus中自己会负责delete,开发者可以不调用 delete)。 当然,如果有必要你可以在DLL(A.dll,B.dll,C.dll)中实现view/doc支持。建议根据 需要开发独立的数据模型模块。 如果按照MVC模式的划分,DllMdiWnd.dll可以理解为C(控制器,创建与销毁窗口),继承类(如ADoc.dll, BDoc.dll,CDoc.dll)类似于V(视图,负责显示数据),这个框架没有提供M(模型,数据存储)。开发者 应该结合不同的文档模板来实现M。 版本历史: v1.0.1 20100616 第一版本 如何使用: 方法1. 进行项目开发时先建立DLL工程(建议选择 add mfc header win32 dll),然后把 DllMdiWnd.dll拷贝到新建项目中。根据应用需要的不同文档模板建立多个对应的Dll工程,这些Dll 都继承自DllMdiWnd.dll的导出类,假定为ADoc.dll,BDoc.dll,CDoc.dll,这些Dll隐式链接DllMdiWnd.dll。 接着建立支持doc/view类型的MDI MFC主程序工程,隐式链接ADoc.dll,BDoc.dll,CDoc.dll。 另外要特别注意的是,主程序要进行必要的修改,如CChildFrame中要修改窗口样式。建立的MDI 主程序运行过程中将完全类似于SDI程序。如,弹出子窗口时它的视图仍然保持最大化(普通的MDI应用 程序中任意一个子窗口从最大化还原时,其它窗口都将处于非最大化状态),并且它永远处于弹出的 子窗口下面,只能(且必须)建立一个CChildFrame。主程序的所有绘图工作都在这个 CChildFrame对应的view上进行。如果需要调用子窗口,只需要创建ADoc.dll(或BDoc.dll,CDoc.dll)导 出类的对象即可。子窗口的所有绘图工作都在ADoc.dll(或BDoc.dll,CDoc.dll)中实现,所以主程序与 ADoc.dll(或BDoc.dll,CDoc.dll)应该同时开发。 方法2. 开发者可以自己根据需要直接修改Demo版进行开发。 其它: 框架有点类似于多个文档模板的MDI应用程序,但是普通的MDI程序在新建一个文档前无法绘图,除非 子类化CMainFrame或截获CMDIClient的消息。这些方式不便进行模块化开发。MdiPlus框架主要优点是在 新建一个文档前就有一个View进行绘图,并且不同功能进行模块化,各模块放到Dll中(如果必要,你也 可以直接写成静态库链接到最终的执行程序里),适合一个项目多人同时进行开发。 **/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值