新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 适用于移动终端的GUI设计与实现

适用于移动终端的GUI设计与实现

作者:时间:2009-05-07来源:网络收藏

要在图形输出设备上绘制图形,在调用图形输出函数时,均要求指定经初始化的图形设备上下文(Device Context,DC),也称作设备环境。设备上下文是连接应用程序、设备程序以及输出设备的纽带,见图3。设备上下文包含许多属性,当需要修改这些属性时,只需调用一个GDI函数修改设备上下文中属性的参数。

图3. 设备上下文

一个图形设备上下文所代表的含义很复杂,它起码应该包含如下内容[5]:

・ 该设备上下文本所在设备信息(显示模式、色彩深度、显存布局等等);

・ 该设备上下文所代表的窗口以及该窗口被其他窗口剪切的信息

・ 该设备上下文的基本操作对象(笔、刷子、字体、位图、区域等),及其上下文信息;

・ 由程序设定的局部信息(绘图属性、映射关系和局部剪切域等)。

2.2.2 绘图函数

设备上下文的属性决定了有关绘图函数如何工作的细节。通过绘图函数应用程序能够方便地画出直线、矩形、圆、椭圆和其它复杂图形,而不需直接与具体的输出设备打交道。

2.2.3使用GDI对象的函数

当调用绘图函数时,使用当前设备上下文中选择的GDI对象来进行绘图。GDI共有笔、刷子、字体、位图、区域和逻辑调色板六个对象。

例如可以通过在CreatePen、 CreatePenIndirect或ExtCreatePen函数中指定这些特征来建立一个逻辑画笔,这些函数传回一个逻辑画笔的句柄。要使用这个画笔,就要用SelectObject将画笔句柄选进设备内容。这样,画任何线都使用这个画笔,然后可以取消设备内容中的画笔选择,并清除画笔对象。清除画笔对象是必要的,因为画笔定义占用了分配的内存空间。

除了画笔以外,GDI对象还用于建立填入封闭区域的画刷、字体、位图以及GDI的其它一些方面。

2.3 消息队列
产生的消息主要包括:按键事件消息、协议栈消息及自定义消息等。按键一般有12个标准电话按键、左右2个软键、5个导航键(上、下、左、右、中) 、拨号键和挂机键,由此可产生对应的短按键及长按键消息。按键的按下及释放产生按键事件,对比键码表对按键事件进行解码,获取正确的按键消息。按键消息经消息过滤后送往当前焦点窗口。GSM 协议栈消息是由手机平台产生的送往消息队列的协议栈消息,主要是网络事件及手机状态的响应消息,包括所有对SIM卡、网络状态、通话、短消息等的响应消息。协议栈消息需传送到赋于系统窗口属性的窗口,但窗口并不需要对每一项协议栈消息进行处理,只依据窗口函数的具体属性定义进行消息响应。

采用消息机制,把上面这些消息收集在一个消息队列中,然后将这些消息连同定时器和重画消息一起放入应用程序消息队列中。应用程序消息队列是属于各个应用程序所有的先进先出队列。但是定时器消息和重画消息保留在队列中直到应用程序处理完所有其它消息后才予以处理。将属于一个特定应用程序的消息放入该应用程序的消息队列中,然后应用程序读取这些消息,并将它们发送给相应的窗口函数。



评论


相关推荐

技术专区

关闭