}
这 样 , M M I _ C A T E G O R Y 6 _ I D 就 被 很 自 然 的 赋 到 g_dm_data.s32ScrId 中
了 ,然 后 随 着 这 个 全 局 变 量 ,顺 利 的 被 带 到 了 dm_redraw_category_screen( )
中 。
二 、 模 板
I D
和 窗 体 组 件 、 组 件 的 属 性 , 是 如 何 关 联 到 一 起 的
通 过 分 析 dm_search_control_set 函 数 , 发 现 窗 体 模 板 的 组 件 和 属 性 相 关
信 息 都 隐 藏 在 一 个 宏 伟 的 结 构 体 数 组 中 : g_ c a t e g o r i e s _ c o n t r o l s _ m a p 。
这 个 结 构 体 定 义 dm_category_id_control_set_map_struct 定 义 如 下 :
typedef struct
{
U16 category_id;
U8 *control_set_p;
S16 *default_coordinate_set_p;
S16 *rotated_coordinate_set_p;
}dm_category_id_control_set_map_struct;
第 一 个 结 构 体 成 员 , 是 窗 体 模 板 的 I D ;
第 二 个 结 构 体 成 员 , 是 组 件 数 组 的 首 地 址 ;
第 三 个 结 构 体 成 员 , 是 默 认 的 组 件 属 性 数 组 的 首 地 址 ;
第 四 个 结 构 体 成 员 , 是 特 殊 的 组 件 属 性 数 组 的 首 地 址 。
dm_search_control_set()函 数 dm_search_coordinate_set()函 数 就 是 通 过
匹 配 模 板 ID 在 结 构 体 数 组 中 分 别 获 取 的 组 件 集 合 和 组 件 属 性 集 合 的 。
好 , 到 这 里 , 我 们 刚 才 提 出 的 两 个 问 题 就 明 确 了 。
( 二 ) 构 成 窗 体 的 组 件 的 定 义
根 据 上 文 可 以 知 道 , 窗 体 组 件 的 定 义 与 窗 体 模 板 ID 是 通 过 结 构 体
dm_category_id_control_set_map_struct 关 联 的 。现 在 来 看 一 看 组 件 数 组 的 结 构 。
下 面 将 以 5 号 模 板 为 例 。
const U8 category5[] =
{