没有合适的资源?快使用搜索试试~ 我知道了~
MTK 总结
4星 · 超过85%的资源 需积分: 32 1.1k 下载量 45 浏览量
2007-08-14
10:15:53
上传
评论
收藏 192KB DOC 举报
温馨提示
试读
21页
MTK MMI代码入门 简单介绍.
资源推荐
资源详情
资源评论
声明:前阶段进行了近两个月的 平台上层开发,由于缺乏技术支持,对于整个平台的认识都是通过
简略的文档和浅薄的经验摸索出来的。其间整理了一些文档。由于联发科提供的 全部是英文,有些
名词难以翻译准确,只能凭单方理解和嵌入式开发的词汇习惯进行意译,还请谅解。系列文章均出自原创,
肤浅可笑之处,望海涵。
(一)窗体的重画
通过观察可以发现,每个窗体模板都调用这样一个函数:
。这个函数便是显示窗体的函数。它内部的实现是这样的:
获得该窗体所包含的组件及它们的属性,再根据组件的类型和属性,调用不同的接口,逐一绘
制各组件。详细流程如下图所示:
由上面的流程可见,无论是窗体所包含的组件,还是组件的属性,都是根据模板 获取的。那
么现在摆在面前的有两个问题:一、模板 是如何传递到这个函数中的;二、模板 和窗体
组件、组件的属性,是如何关联到一起的。 我 们 逐 一 解 决 这 两 个 问 题 。
一、模板
ID
是如何传递到 这 个 函数中的
模板
,是 过程中,所显示的界面的编号,千万不要
与 ,…函数中传入的窗口
相混淆。它们以“ 为 前 缀,
被定义在枚举型结构 !"#$%& 中,又通过结构体 '
和它的全局结构体变量 ,在应用程序中被广泛使用。先看看结构体
' 的 定 义 :
()'
*
+,+,-
+,+,-
+,+,. -
/
其中, + , 是当前窗口 ,也就是我们使用 ()时传入的
那个参数;而 + , 才是模板 ; 最 后 的 . ,是模板需要显示软键盘、清屏等动
作时,所置的标志
变量,它在上面提到的那个 ( ) 函
数中被判断。还是来重点看一下第 , 个结构体成员 + , 的使用。
以 0 为例。这个显示模板的函数中,经常可以看到这样的
语句:
+, 1 +,"!23-
+,1 ! " # $ % 0 -
+,. 14-
'(5-
再看 ' ( 干了什么:
32'(' 6
*
+, 1 7 8 + , -
+,1 7 8 +,-
+,. 178+,. -
/
这样, ! " # $ % 0 就被很自然的赋到 + , 中了,然
后随着这个全局变量,顺利的被带到了 ()中。
二、模板
ID
和窗体组件、 组 件 的属性,是如何关联 到 一起的
通过分析 9 函 数 , 发 现 窗 体 模 板 的 组 件 和 属 性 相 关 信息都
隐藏在一个宏伟的结构体数组中: 2 9 ( 。
这个结构体定义 2 9( ' 定义如下:
()'
*
:;02-
:<69(-
;06)'92(-
;062(-
/29('-
第一个结构体成员,是窗体模板的 ;
第二个结构体成员,是组件数组的首地址 ;
第三个结构体成员,是默认的组件属性数组的 首 地 址 ;
第四个结构体成员,是特殊的组件属性数组的 首 地 址 。
9 函数 2 函数就是通过 匹 配
模板 在结构体数组中 分 别 获 取 的 组 件 集合和组件属性集合的。
好,到这里,我们刚才提出的两个问题就明确了。
(二)构成窗体的组件的定义
根据上文可以知道,窗体组件的定义与窗体模板 是 通 过 结 构 体
29(' 关联的。现在来看一看组件数组的结构。下
面将以 = 号 模 板 为 例 。
:<=>?1
*
=@
A!&!%$!$ @
$A"@
A!#$#&;@
:& & :A # B ; @
!"#$% #$#&&! $!
/
在这个组件数组中,第一个字节“= 代 表 组 件 的 数 量 ; 第 二 个 字节开始就是组件的类别的
了。比如说,A! &!%$ !$ ,代表开始使用 & ;$A" 表示背
景图;A!#$#&; 表示窗体的基本组成——状态栏、标题和软按键;
:& &:A# B ; 是多行输入框;!"#$%# $#&&!$ !
则是输入法的显示部分。它们被定义在枚举结构 2 92 ' 中。
在 环境 的 原 始 版 本 中 , 一 共有 CC 种组件。其后的都是用户自己扩展的。各组件的外
观和功用是什么,基本是可以见词知意的,可以在 具 体 使 用 过 程 中 了 解 。
(三)各组件的属性定义
仍以 = 号模板为例,观察组件属性数组。
;02>? 1
*
:&&$##$ ! &! "@
###$! & !"@
:&&$##$ ! &! "
/
这两个常量都是代表组件属性的标志。定义在 D ' 2 中大家可以观
察到,它们都是负数:
EF :&&$##$!&!"7;444,
EF ###$!&!"7;444G
现在就让我们一起分析一下它们在控件绘制中起到的作用,以及定义成 负数的原因。
请回到(图 ;7 ; ) 。 通 过 比 对 我 们 可 以 发 现 , 在 函
数流程的第 0 步 的 循 环 中 , 就 是 通 过 判 断 组 件 的 来实现逐步绘制窗体的,如:
:& & :A#B;H
*
'('92922('IJ5:9! (@ 5 2
)-
/
先来分析两个参数。联系上面的程序,我们可以 知道,:9!( 是作为参数传
入 2 函 数 中 的 , 又 作 为 返回值,完成进入循环前的最后一次
更改的,而此前,它指向的是组件属性数组。由于模板需要在其 他组件被绘制前绘制窗体本身,
因此它使用 2 提 前 了 解 窗 体 的 规格,而组件属性数组的第一
个 :;0 , 就 正 是 窗 体 的 规格的标志 : :&&$ # #$ ! &!" 。根据
该 , 2 做 了分类判断,得到了指向结构体
2)' 的变量指针,其结构定义如下:
() '
*
; 0 J ; -
; 0 ; -
; 0 J , -
; 0 , -
; 0 . -
/2)'-
很明显,结构体成员分别是:起始、结 束 坐 标 , 附 加 的 标 志 。
剩余20页未读,继续阅读
资源评论
- kanatabig2013-05-24书还可以,不过现在用不上了
bibibibibibibibinibi
- 粉丝: 134
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240513_111001.jpg
- 耕地进出平衡总体方案编制 编制耕地进出平衡总体方案,适用于耕地保护督察、耕地卫片执法、耕地流出整改等耕地保护工作方面及技术服务单
- 课程设计报告-图书信息管理系统.zip
- 05-10 周五 推理是什么
- Python用xlrd读取excel文档,数字总是默认成浮点数的问题
- Software-Defined-Radio-using-MATLAB-Simulink-and-the-RTL-SDR 2nd
- 大气红外探测仪AIRS-V5-Tropospheric-CO2-Products.pdf
- 《STM32单片机+BH1750光照强度+DS18B20测温传感器+Water水位传感器模拟湿度+OLED屏幕》源代码
- ECharts 数据可视化 -单仪表盘
- 135131858118956ssm某企业危化品信息管理系统bf339.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功