微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > 展讯手机平台交流 > 展讯6800平台MMK问题(版本:MOCOR_10A.W11.09_P4_PDA_1.0)

展讯6800平台MMK问题(版本:MOCOR_10A.W11.09_P4_PDA_1.0)

时间:10-02 整理:3721RD 点击:
最近做展讯6800,发现MMK存在几个问题,邮件问展讯同事,展讯答复说没问题。但我还是觉得有问题,所以发到论坛来,请各位大侠帮忙分析。
问题一:
        文件:mmk_msg.c
        函数:MMK_DispMsgToWin()
        问题:该函数的返回值有问题,会造成后续对msg_id的错误处理
        BOOLEAN  MMK_DispMsgToWin(
                                MMI_MESSAGE_ID_E    msg_id,     //the identify of message
                                DPARAM              param_ptr   //the param of the message
                                )
        {
                BOOLEAN                result = FALSE;                //本人认为默认返回应该是TRUE[/COLOR]
                MMI_HANDLE_T        win_handle = MMK_GetFocusParentWinHandle();
                if (MMK_GetWinDisplayStyleState( win_handle, WS_DISPATCH_TO_CHILDWIN ))
                {
                        if (!MMK_DispMsgToFocusWin( msg_id, param_ptr ) )        //如果这里已处理[/COLOR]
                        {
                                result = DispMsgToFocusParentWin( msg_id, param_ptr );        //result得不到重新赋值[/COLOR]
                        }
                }
                else
                {
                        if (!DispMsgToFocusParentWin( msg_id, param_ptr ) )        //如果这里已处理[/COLOR]
                        {
                                result = MMK_DispMsgToFocusWin( msg_id, param_ptr );        //result得不到重新赋值[/COLOR]
                        }
                }
                return result;
        }
        分析:对于子窗口优先处理的情况(即代码上部份),如果MMK_DispMsgToFocusWin()返回TRUE,表示msg_id已被处理,不需要后续处理,就不会再调用DispMsgToFocusParentWin()继续处理。但此时整个函数MMK_DispMsgToWin()的返回值仍然是FALSE,上一级函数,如HandleMSGKbd()会认为该消息还没处理,会继续丢给下一个流程处理,如按键消息会走到MMK_HandlePublicKey()中。
        问题实例:实现在待机屏上按HOME键进主菜单,在其它界面仍然是回到待机屏。本来在待机屏消息处理函数中加一个case MSG_APP_HOME: EntryMainmenu();break;就解决了。但现在的问题是:虽然待机屏执行了MSG_APP_HOME,进入了主菜单,但由于MMK_DispMsgToWin()返回的是FALSE,按键消息还会调用MMK_HandlePublicKey()处理,于MMK_ReturnIdleWin()了。

实现在待机屏上按HOME键进主菜单 可以不用消息机制的

研究地好!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top