展讯平台之 MMI

本文详细介绍了在展讯平台上创建和管理 MMI 窗口的过程,包括窗口TABLE定义、窗口ID注册、MMK创建窗口以及窗口处理函数的实现。窗口处理函数主要通过CASE语句处理各种消息,如打开、刷新、焦点变化和关闭窗口。同时,还涵盖了资源管理,如字符串、图片和菜单的添加与使用方法。
摘要由CSDN通过智能技术生成
 一个应用程序是由一个或多个窗口构成的。

窗口创建过程(hello sprd):
(1)创建窗口TABLE()
宏 WINDOW_TABLE定义了窗口数据信息表,在window_parse.h
WINDOW_TABLE(MMI_HELLO_SPRD_WIN_TAB)=
{
 WIN_ID(MMI_HELLO_SPRD_WIN_ID),//窗口ID
 WIN_FUNC((uint32)HandleHelloSprdWinMsg), //处理函数
 WIN_TITLE(TXT_HELLO_TITLE),//窗口标题
 WIN_SOFTKEY(STXT_OK, TXT_NULL, STXT_RETURN),
 END_WIN
};

(2)注册窗口ID
暂放于MMI_APP/COMMON/H/mmi_id.def中
WIN_ID_DEF(MMI_HELLO_SPRD_WIN_ID,"MMI_HELLO_SPRD_WIN_ID")
(3)MMK位于mmk_app.h中
在idle窗口的处理函数里面加case_msg_app_ok里加一句:
MMK_CreateWin((uint32*)MMI_HELLO_SPRD_WIN_TAB,PNULL);
(4)写窗口处理函数,否则是一个空窗口 不会显示。(窗口回调函数)
首先要申明,LOCAL MMI_RESULT_E HandleHelloSprdWinMsg(
                                        MMI_WIN_ID_T     win_id,
                                        MMI_MESSAGE_ID_E    msg_id,
                                        DPARAM  param
                                        );

然后函数实现:窗口的处理函数其实就是一个大的CASE语句,主要处理来自于系统的内部和外部消息。
LOCAL MMI_RESULT_E HandleHelloSprdWinMsg(
                                        MMI_WIN_ID_T     win_id,
                                        MMI_MESSAGE_ID_E    msg_id,
                                        DPARAM param
                                        )
{     MMI_RESULT_E    recode=MMI_RESULT_TRUE;
   
            switch(msg_id)
   {
                 case MSG_OPEN_WINDOW:       //打开窗口的消息
                      break;

                 case MSG_FULL_PAINT:        //刷新窗口消息
   {
                     
               GUI_LCD_DEV_INFO lcd_dev_info   ={GUI

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值