LtGUI-开发基于WinCE平台的轻量级GUI框架(一)
2010-04-21 23:37
393 查看
一、源由
本人目前工作是基于WinCE平台的应用开发,需要实现比较炫丽的UI,又由于客户需求变动比较大(主要是UI部分),需要一个良好的UI架构让开发工作更轻松、快速、易维护,所以就想到了开发一套轻量级的GUI框架。
本人把这套库命名为LtGUI,意思是轻量的GUI库(Light Weight GUI Lib),也确定好整个库的命名,就是库中的类都以Lt开头。
二、目标
需求的GUI框架应具备的特性:
1.支持多种图片格式,bmp、jpg、png等。
2.可以进行任意透明叠加。
3.基本的窗口动画切换
4.在当前OS和CPU平台(CE5.0 ARM9)能够流畅运行
5.基本控件完善,窗口、按钮、单选多选框、拖动条、对话框等
6.FreeType字体渲染(CE平台的中文字体平滑效果很差)
7.……(细节省略)
三、分析
GUI框架主要由以下几部分组成:
1.图形处理
图形处理主要是对图片、图形、文字的绘制渲染,画布(Canvas)的完善支持。
2.控件/窗口框架
基于控件/窗口的框架,类似Windows里的窗口模型。
3.事件/消息框架
控件/窗口之间通信、事件处理的模型。控件框架依赖于此框架。类似Windows的消息模型。
在LtGUI的实现中,前期会基于一些现成的功能,比如图形可以建立在DC之上,事件/消息可以建立在Windows的消息之上。
由于LtGUI的开发与博文的撰写是同步的,在开发的过程遇到的问题与解决我也会一并写出与大家交流。
四、参考
以下是对一些库的使用情况:
MFC,WTL:MFC在桌面程序上经常用,WTL了解过,都是对HWND的封装,而且在WinCE上实现比较炫的界面不方便。可参考的是Wnd的架构,基本的事件回调模型。
Qt,wxWidgets:这两个都是开源跨平台的,Qt过于庞大。wxWidgets也适合实现比较复杂的界面,在不同的平台上使用了本地控件(即OS原本的控件)。
Skia:Google的开源项目,图形部分比较完善,GUI部分比较简单。比较适合做图形库。可参考其图形库的一些实现。
作者:幻枫
E-Mail:huanfengf@163.com
CSDN博客:http://blog.csdn.net/huanfengf
博客园:http://www.cnblogs.com/huanfeng/
因本人的知识水平有限,文章中有错误或不妥之处请提出。
本人目前工作是基于WinCE平台的应用开发,需要实现比较炫丽的UI,又由于客户需求变动比较大(主要是UI部分),需要一个良好的UI架构让开发工作更轻松、快速、易维护,所以就想到了开发一套轻量级的GUI框架。
本人把这套库命名为LtGUI,意思是轻量的GUI库(Light Weight GUI Lib),也确定好整个库的命名,就是库中的类都以Lt开头。
二、目标
需求的GUI框架应具备的特性:
1.支持多种图片格式,bmp、jpg、png等。
2.可以进行任意透明叠加。
3.基本的窗口动画切换
4.在当前OS和CPU平台(CE5.0 ARM9)能够流畅运行
5.基本控件完善,窗口、按钮、单选多选框、拖动条、对话框等
6.FreeType字体渲染(CE平台的中文字体平滑效果很差)
7.……(细节省略)
三、分析
GUI框架主要由以下几部分组成:
1.图形处理
图形处理主要是对图片、图形、文字的绘制渲染,画布(Canvas)的完善支持。
2.控件/窗口框架
基于控件/窗口的框架,类似Windows里的窗口模型。
3.事件/消息框架
控件/窗口之间通信、事件处理的模型。控件框架依赖于此框架。类似Windows的消息模型。
在LtGUI的实现中,前期会基于一些现成的功能,比如图形可以建立在DC之上,事件/消息可以建立在Windows的消息之上。
由于LtGUI的开发与博文的撰写是同步的,在开发的过程遇到的问题与解决我也会一并写出与大家交流。
四、参考
以下是对一些库的使用情况:
MFC,WTL:MFC在桌面程序上经常用,WTL了解过,都是对HWND的封装,而且在WinCE上实现比较炫的界面不方便。可参考的是Wnd的架构,基本的事件回调模型。
Qt,wxWidgets:这两个都是开源跨平台的,Qt过于庞大。wxWidgets也适合实现比较复杂的界面,在不同的平台上使用了本地控件(即OS原本的控件)。
Skia:Google的开源项目,图形部分比较完善,GUI部分比较简单。比较适合做图形库。可参考其图形库的一些实现。
作者:幻枫
E-Mail:huanfengf@163.com
CSDN博客:http://blog.csdn.net/huanfengf
博客园:http://www.cnblogs.com/huanfeng/
因本人的知识水平有限,文章中有错误或不妥之处请提出。
相关文章推荐
- 一个专为移动端开发的原创即时通讯框架,超轻量级、高度提炼,完全基于UDP协议,支持iOS、Android、标准Java平台。
- KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架
- 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
- Koa (koajs) 基于 Node.js 平台的下一代 web 开发框架
- WinCE平台搭建--基于数据库的.NET应用程序开发(wince6.0+vs2008+sqlce)
- 基于.Net(C#开发)平台的三层框架架构软件的设计与实现
- GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台
- WinCE平台搭建--基于数据库的.NET应用程序开发(wince6.0+vs2008+sqlce)
- 基于springjdbc封装的javaee轻量级开发平台jmapper(一)
- 基于Flask框架的Python web程序的开发实战 <一> 环境搭建
- JEasyFrame,一款基于SSH的轻量级JavaEE开发框架
- 跨平台 GUI 框架 wxWidgets和UI开发工具 wxFormBuilder
- 一种基于组件的跨WEB/手机/WINDOS/UNIX平台的多层开发框架构思
- KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架
- Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)
- 基于Qtopia_Core的嵌入式Linux_GUI平台移植与开发 (转)
- express(基于 Node.js 平台,快速、开放、极简的 web 开发框架)
- Express 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块