您的位置:首页 > 产品设计 > UI/UE

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/

因本人的知识水平有限,文章中有错误或不妥之处请提出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐