Chinaunix首页 | 论坛 | 博客
  • 博客访问: 994674
  • 博文数量: 238
  • 博客积分: 2842
  • 博客等级: 少校
  • 技术积分: 2765
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-16 00:20
个人简介

stdlf

文章分类

全部博文(238)

文章存档

2013年(6)

2012年(13)

2011年(82)

2010年(89)

2009年(48)

我的朋友

分类:

2010-03-10 15:08:28

uC/GUI是以ANSI C源码包的形式提供的,由Config和GUI两个目录组成:                   

GUI/CONF.H 

配置GUI移植到不同操作系统的选项。

GUI/TouchConf

配置触摸屏的选项以及编写触摸屏的驱动。

GUI/Touch
支持触摸屏输入的文件代码,Touch是触摸屏和鼠标的底层接口部分。UC/GUI只支持模拟忽,因而此目录下只包含模拟触摸屏。

GUI/ConvertMono

使用黑白显示设备时,所要使用的灰度转换函数,它里面包含24位色—单色,四级灰度,16级灰度和用户自定义颜色之间转换的函数。

GUI/ConvertColor

使用彩色显示设备时,所要使用的彩色转换函数,它里面包含24位色—各种颜色之间的转换的函数。

GUI/Core
uC/GUI核心代码,GUI多数的处理函数都在这个文件夹里面。

GUI/Font
uC/GUI与字体相关的代码文件,我们可以通过对它里面文件的增减来增删字体。

GUI/MemDev
内存设备支持文件代码 ,是GUI的DMA模式的一些处理函数文件。主要用于防止在交迭图时产生的抖动,在GUI函数绘图不使用MemDev时,画图操作直接写到终端上显示,交迭绘图执行时刷新屏幕,多次刷新时就会出现抖动。例如要在背景色中画图,且在前景色中写一些透明的文字,实现的步骤就是先画图,然后写文字,那么结果就会出现 文字的抖动。如果使用MemDev则所有的执行操作都在MevDev中执行,当所有的操作都执行完毕之后,最后的结果才会送到屏幕上显示,因而可以避免多次刷新,从而避免拉动。

此目录下包含这MemDev的所有函数,包括创建MemDev函数,激活MemDev,执行画图操作,显示到终端,删除MemDev函数等等。


GUI/LCDDriver
LCD驱动文件代码,是GUI的底层接口部分我们所移植的部分就应该在这个文件夹。

GUI/Widget
此目录包含窗口控件函数,共46个函数,UC/GUI中窗口控件机制是UC/GUI的实现难点,也是应用难点。运用窗口管理和回调机制,运用窗口控件函数,可以任意在LCD屏幕上实现类似于WINDOWS的界面,这样完备的功能在工业自动化控制和触摸屏应用上有着深远面积极的意义。

此目录下的函数主要包括UC/GUI的窗口控件,如按钮BUTTON、校验窗CHECKBOX、编辑区EDIT、窗口框Framewin、列表Listbox、进度条Progbar、音频按钮RadioButton、流动条ScrollerBar、改变值的灰度条Slider、以及文本框TEXT相关的各种函数。

GUI/WM是GUI的窗口消息处理函数文件夹。包括窗口管理函数,共52个函数。UC/GUI中窗口管理中的消息传递机制和回调机制,也是UC/GUI的实现难点和应用难点。

此目录包括设置、返回、建立背景窗口、父窗口、各种子窗口以及相应的尺寸、窗口句柄、起点X,Y坐标、窗口宽度、高度、位置等等,还包括改变窗口的大小,以及最关键的窗口的回调函数、窗口重绘函数等等。
                           

  Config目录下包含了LCDConf.h,GUITouchConf.h和GUIConf.h三个文件用来对具体使用的LCD驱动程序、触摸屏驱动程序和uC/GUI进行配置。

uC/GUI的移植过程主要是对Config目录下三个文件的修改,以及进行触摸屏和LCD驱动程序的编写[2]。

ucGUI的配置开关默认在gui\core\gui.h中,但优先级更高的是Config目录下的cuiconf.h

最大任务数在guiconif.h中

GUI_MAXTASK

最大可管理内存

GUI_ALLOC_SIZE

这个如果设得太小,当使用MEMDEV,内存不够分配会使GUI挂起

一般GUI任务的权限设为最低,以免阻碍别的任务的调度

使用共享资源务必互斥!

子/父窗口

子窗口是相对于父窗口定义的窗口。无论何时只要父窗口移动则子窗口们都要相应移动。子窗口被父窗口完全包含,拥有同一个父窗口的子窗口们互相间欣赏为兄弟。

客户区

窗口的客户区就是窗口的可用区。如果窗口包含方框或标题栏,则客户区就是方框或标题栏的内部区域。

句柄

当一个新的窗口被创建时,WM分配一个唯一的标识符:句柄。句柄用在后续对该窗口的所有函数中,而且可以利用该句柄唯一标识该窗口。

有效窗口/无效窗口

有效窗口是一个已经完全更新不需要重绘的窗口。不管是完全重绘还是局部重绘,当窗口内容发生改变时WM则标识窗口无效,下一次重绘之后 (调用回调函数)窗口又变为有效。


回调机制

UC/GUI提供窗口和窗口控件的回调机制的背后是一个事件驱动标志。在大多数的窗口系统中流控不仅仅是从用户程序到图形系统,而且还要能够从用户程序到图形系统,并且能够通过用户程序提供的回调函数返回到用户程序。这个机制为回调机制。在UC/GUI中回调机制用来在窗口管理中控制窗口的重绘操作,这使得窗口管理的有效性成为可能。



2.UCGUI需要移植的部分


阅读(2344) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~