menulanguage.c

来自「本代码包为本人的一篇文章<一个占用内存极少的菜单系统的实现>在在PC」· C语言 代码 · 共 104 行

C
104
字号
/******************************************************************************
 * MenuLanguage.C - 语言切换模版
 *
 *
 * DESCRIPTION: -
 *
 * modification history
 * --------------------
 * 01a, 04/sep/2007, 梁炎昌 written
 * --------------------
 ******************************************************************************/
#include "CPU.H"
#include "Ks0108.H"
#include "Menu.H"

/*
这里是语言切换界面,这里也演示了如何通过提前修改Item Where
void DispMenuLanguageInit()函数中:
-----------------------------
    if(Flash == FlashMode_ManualInit){//首次进入本层菜单,调整Item where
        PUSH();
        Item = language;
        Where = Item;
    }
-----------------------------

*/
//语言
//Bar型菜单
void DispMenuLanguageInit()
{
//----------------------
    MenuGUI_Clear();
//--------------------
    //切换Bar显示内容
//-----------------
    BarMenu = &MenuLanguage[language];
    ItemNum = (*BarMenu).TextNum;
    DispItem = (*BarMenu).Text;

    //用户的初始化代码请放在这里
    //显示父菜单名字

    //显示按键提示          2-->OK
//    MenuGUI_DispStringAt(Tip[language].Text+2*(Tip[language].TextLen),Enter_PosX,Enter_PosY);
    MenuGUI_DispStringAtBar(*(Tip[language].Text+2),0,Enter_PosY,126,MenuGUI_TA_HCENTER);
    if(Flash == FlashMode_ManualInit){//首次进入本层菜单,调整Item where
        PUSH();
        Item = language;
        Where = Item;
    }
    //公共初始化部分
    BarMenuInit();
}

/*
************************************************************
*   FIXME!
*   这里是做语言切换的
*   但是这会有一个有意思的问题:
*   我们的菜单保存机制是备份过去的父菜单的Text等信息的,因此即便是更换了语言,
*   这个保存的信息依然没有被更换,就是说,在这里切换语言后,显示的父索引还是没有变
*   改正方法:
*   通常语言切换的地方就一个路径而已,因此更换语言后正确修改保存的信息...
************************************************************
*/
void DispMenuLanguageUp()
{
//-----------
    PUSH();//
//-------------------
    MenuGUI_Clear();
    if(Item==0){
        language = CN;
        MenuGUI_Delay(10);
    }else if(Item==1){
        language = EN;
        MenuGUI_Delay(10);
    }
    MenuGUI_Clear();
//-------------------
    POP();
//-------------------

}
void DispMenuLanguageDown()
{
    POP();
}
void DispMenuLanguageLeft()
{
    BarMenuLeft();
}
void DispMenuLanguageRight()
{
    BarMenuRight();
}






⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?