MTK平台学习--简单分析DM模板内部机制

本文解析了DM模板的工作原理,包括全局变量g_dm_data的作用、API函数dm_setup_data与dm_redraw_category_screen的功能及其执行流程,以及控件数组的排列规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单分析DM模板内部机制

1.   DM模板的全局变量 g_dm_data
     typedef struct
     {
          S32 s32ScrId;
          S32 s32CatId;
          S32 s32flags;
     } dm_data_struct;
     dm_data_struct g_dm_data;

2.   analyse the API function
     (1)  dm_setup_data
          在call dm_setup_data() 之前,DM的接口数据是存储在局部变量中的,根据MTK代码习惯,一般是dm_data
          dm_setup_data主要作用就是将屏幕ID与模板ID关联起来;
     (2)  重点分析 dm_redraw_category_screen( )
          执行流程:
          A.  dm_search_coordinate_set( )
              首先调用函数 dm_search_coordinate_set( )
              作用:由给出的屏幕ID得到指向DM控制属性的指针;
          B.  dm_get_cat_scr_coordinates( )
              然后调用函数 dm_get_cat_scr_coordinates( )
              作用: 由于DM模板需要在其他组件被绘制前绘制窗体本身,
                    根据DM控制属性的第一项即基本属性得到窗体的属性值并更新指向属性的指针变量
              注意: 在该函数被调用后,MMI将更新当前窗体
          C.  dm_get_coordinates( )
              最后调用DM画图函数
              在该函数内通过调用dm_get_coordinates( )以根据属性值更新全局属性变量,最后绘出图像  
     (3). DM模板的控件数组
          控件在列表中放置的顺序:越往后的控件显示越靠上层,也越容易接收触摸屏操作   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值