嵌入式培训

嵌入式Linux就业班马上开课了 详情点击这儿

 
上海报名热线:021-51875830
北京报名热线:010-51292078
深圳报名热线:0755-61280252
南京报名热线:4008699035
 
武汉报名热线:027-50767718
成都报名热线:4008699035 61787181
研发与生产 脱产就业培训基地
3G通信 企业培训 
  首 页   课程介绍   培训报名  企业培训   付款方式   讲师介绍   学员评价   关于我们   联系我们  承接项目 开发板商城  论坛
嵌入式协处理器--FPGA
FPGA项目实战系列课程----
嵌入式OS--3G手机操作系统
嵌入式协处理器--DSP
手机/网络/动漫游戏开发
嵌入式OS-Linux
嵌入式CPU--ARM
嵌入式OS--WinCE
单片机培训
嵌入式硬件设计
嵌入式OS--VxWorks
PowerPC嵌入式系统/编译器优化
PLC编程/变频器/数控/人机界面 
开发语言/数据库/软硬件测试
3G手机软件测试、硬件测试
云计算、物联网
开源操作系统Tigy OS开发
小型机系统管理
其他类
友情连接
WEB在线客服
武汉、南京在线WEB客服
点击这里给我发消息  
QQ客服一
点击这里给我发消息  
QQ客服二
点击这里给我发消息
QQ客服三
公益培训通知与资料下载
企业招聘与人才推荐(免费)

合作企业新人才需求公告

◆招人、应聘、人才合作
请访问曙海旗下网站---

电子人才网
www.morning-sea.com.cn
合作伙伴与授权机构
现代化的多媒体教室
曙海集团招聘启示
曙海动态
邮件列表
 
高级模板
 

高级模板、控件的构建与使用
??? 本节例子源代码请见源代码光盘“第7章的例子”文件夹下“7.2 高级模板、控件的构建与使用”文件夹。
前面我介绍了屏幕模板的使用,接下来我重点介绍高级控件的使用,高级模板是建立在普通模板的基础上的,所以要特别注意普通的模板时怎样一步步变成高级模板的。
讲到高级模板,我们不可避免涉及到Draw Manager的概念。Draw Manager(简称DM)主要是为了减轻代码冗余。触摸屏在模板数据库中保存了每个模板的控件列表,DM一并将每个控件的属性集(如排版数据,控制标志等)也加入其中,当要绘制模板时DM 将控件集与属性集一起取出来,然后依次通知每个WGUI 控件,WGUI 控件收到DM的通知与相关的属性集后立即将自己绘制出来。

普通屏幕模板加入触摸屏与DM后,就成了高级屏幕模板,本章将为大家介绍如何将普通模板转化为高级模板。
模板数据库
高级模板的重中之重是“模板数据库”,数据库存在CustCoordinates.C 中,下面将详细讲述数据库的构成。
首先要讲的是映射表g_categories_controls_map,映射表中每一项代表一个模板,其结构定义如下:
typedef struct
{
U16 category_id; //模板ID,CategoryScreen、DM、TouchScreen 之间主要是通过模板ID 相互交流
U8 *control_set_p; //控件列表
S16 *default_coordinate_set_p; //属性列表
S16 *rotated_coordinate_set_p; //旋转屏幕的属性列表,目前基本不用
} dm_category_id_control_set_map_struct;
模板ID 定义在wgui_categories_defs.h 中,我们将新模板的ID 命名为MMI_CATEGORY888_ID:
enum MMI_CATEGORY_ID_LIST
{
MMI_LIST_CATEGORY_ID = 1,
MMI_CATEGORY5_ID,
… …
MMI_CATEGORY_NSM275,
MMI_CATEGORY888_ID //我们屏幕的模板ID
};
然后在映射表中加上一项:
const dm_category_id_control_set_map_struct g_categories_controls_map[] =
{
{MMI_CATEGORY5_ID, (U8 *) category5, (S16 *) coordinate_set5, NULL},
{MMI_CATEGORY6_ID, (U8 *) list_menu_category, (S16 *) common_coordinate_set, NULL},
… …
{MMI_CATEGORY888_ID, (U8 *) category888, (S16 *) coordinate_set888, NULL}
};
我们的模板包含了两个控件“列表控件”与“系统按键条”:
const U8 category888[] =
{
3,
DM_BASE_LAYER_START,
DM_LIST1,
DM_BUTTON_BAR1,
};
第一个参数表示我们模板包含的控件数,这里为数字“3”是因为我们还加上了一个控制类型的控件DM_BASE_LAYER_START,后面会详细讲此控件的作用。
控件在列表中放置的顺序也有讲究,越往后的控件显示越靠上层,也越容易接收触摸屏操作。
接下来定义我们模板的属性集:
const S16 coordinate_set888[] =
{
DM_FULL_SCREEN_COORDINATE_FLAG,
20, MMI_CONTENT_Y + 5, 136, MMI_CONTENT_HEIGHT - 40, DM_NO_FLAGS,
DM_DEFAULT_BUTTON_BAR_FLAG, MMI_SOFTKEY_WIDTH,
};

 
 
 
版权所有:曙海信息网络科技有限公司 copyright 2000-2010
 
上海总部

地址:上海市真北路2500号星河世纪广场A座1904
(地铁11号线上海西站4号出口,家乐福桃浦路店旁)
邮编:200062
热线:021-51875830 32300767
传真:021-32300767
业务手机:15921673576/13918613812
E-mail:officeoffice@126.com
客服QQ: shuhaipeixun
北京分中心

地址:北京市昌平区沙河南街11号312室
(地铁昌平线沙河站B出口) 邮编:102200 行走路线:请点击这查看
热线:010-51292078 57292751
传真:010-51292078
业务手机:13661044276 15313032557
E-mail:officeoffice@126.com
客服QQ:1243285887
深圳分中心

地址:深圳市罗湖区桂园路2号电影大厦A座1816
(地铁一号线大剧院站D出口旁,桂园路和解放路交叉口,近地王大厦)
热线:0755-61280252 25912501
传真:0755-25912501

邮编:518001
信箱:qianru2@51qianru.cn
客服QQ:2472106501
南京分中心

地址:江苏省南京市栖霞区和燕路251号金港大厦B座2201室
(地铁一号线迈皋桥站1号出口旁,近南京火车站)
热线:4008699035
传真:025-84611061
业务手机:13851400109
邮编:210046
信箱:qianru3@51qianru.cn
客服QQ:1325341129
 
成都分中心

地址:四川省成都市金牛区泰安里营门口路88号四威大厦1幢302 邮编:610031
热线:4008699035 61787181 业务手机:18982211962
客服QQ:1325341129 E-mail:qianru4@51qianru.cn

武汉分中心

地址:湖北省武汉市江汉区新华路139号凯盟大厦401 邮编:430022
热线:4008699035
客服微信:shuhaipeixun E-mail:qianru5@51qianru.cn

双休日、节假日及晚上可致电值班电话:021-51875830 值班手机:15921673576/13918613812


备案号:沪ICP备05030316号

.(2011年11月5日)................................................................................