找回密码
 注册
搜索
查看: 522|回复: 0

关于gobackhistory

[复制链接]
发表于 2008-1-14 16:10:29 | 显示全部楼层 |阅读模式
以前没有去想它的原理,今天终于搞明白了。
mtk中上级菜单与下级菜单是通过消息的方式联系的。和函数调用的方式似乎不同,实际上,本质是一样的。
函数调用时需要把当前函数压栈,再执行被调用的函数,执行完后,再出栈。如果函数调用的级数很多,对栈的要求就会较高。
mtk中的菜单实际上是知道它的下一级菜单的入口函数和其它一些信息的,但是并不知道它的上一级菜单的信息,这个时候,就需要栈来记录上一级菜单的信息。
当进入一个新的菜单时,它首先要执行对前一个菜单的压栈,这就是exit函数干的活,然后,修改一些全局变量换成新的context,最后执行该菜单的显示工作。
当gobackhistory时,返回上一级菜单,则出栈。执行上一级菜单的入口函数,有EntryNewScreen,但是不需要入栈.
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-28 15:59 , Processed in 0.059446 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表