📄 menusetup.c
字号:
/******************************************************************************
* MenuSetup.C - "设置"菜单 菜单函数使用模版
******************************************************************************/
#include "MenuSetup.h"
//设置
void DispMenuSetupInit()
{
GUI_Clear();
//--------------------
//切换Bar显示内容
//---------------------
BarMenu=&MenuSetup[language];
ItemNum=(*BarMenu).TextNum ;
DispItem=(*BarMenu).Text ;
//用户的初始化代码请放在这里
//显示按键对应的文字提示,1-->"选择"
GUI_DispStringAt(*(Tip[language].Text+1),0,LCD_YSIZE-14);
//显示按键对应的文字提示,0-->"退出"
GUI_DispStringAt(*(Tip[language].Text+4),LCD_XSIZE-24,LCD_YSIZE-14);
BarMenuInit();//公共初始化部分
}
/*
*****************************************************************************
菜单使用例程
0.Jump2Menu + FlashMode_AutoInit/FlashMode_ManualInit
跳转到任意菜单,FlashMode_AutoInit-->在BarMenuInit函数中执行PUSH;
FlashMode_ManualInit-->子菜单的Init函数中PUSH,看例子:DispMenuLanguageInit
1.PUSH + POP
执行一些功能,并使用LCD后,回到原有界面,回到原有界面--包括反显位置都恢复
2.Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
执行一些功能,并使用LCD后,执行如上调用,回到原有界面--包括反显位置都恢复
3.POP
执行一些功能,并使用LCD后,回到上层菜单,恢复上层界面
4.Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
执行一定功能后,但不占用LCD的话,直接界面不动
*****************************************************************************
*/
void DispMenuSetupDown(void)
{
POP();
}
void DispMenuSetupLeft(void)
{
BarMenuLeft();
}
void DispMenuSetupRight(void)
{
BarMenuRight();
}
void DispMenuSetupUp(void)
{
switch(Item)
{
case 0 ://时间设置选项
{
PUSH();
GUI_Clear();
if(language == CH)
GUI_DispStringAtBar("时间设置",0,0,LCD_XSIZE,GUI_TA_HCENTER);
else
GUI_DispStringAtBar("Time Settings",0,0,LCD_XSIZE,GUI_TA_HCENTER);
//显示按键对应的文字提示,1-->"确定"
GUI_DispStringAt(*(Tip[language].Text+2),1,LCD_YSIZE-14);
//显示按键对应的文字提示,0-->"退出"
GUI_DispStringAt(*(Tip[language].Text+4),LCD_XSIZE-24,LCD_YSIZE-14);
Time_Settings();//时间设置函数
POP();//返回到父菜单
break ;
}
case 1 :
{
//PUSH -->POP
PUSH();
GUI_Clear();
GUI_DispStringAt("Do Something \nthen Back to \nThis Menu!",0,0);
GUI_Delay(10000);
POP();
break ;
}
case 2 :
{
//ReFlash = 1
GUI_Clear();
GUI_DispStringAt("Do Something \nthen Back to \nThis Menu!",0,0);
GUI_Delay(10000);
Jump2Menu(SelfMenuIndex,FlashMode_ReFlash);
break ;
}
case 3 :
{
//POP
GUI_Clear();
GUI_DispStringAt("Do Something \nthen Back to \nFather Menu!",0,0);
GUI_Delay(10000);
POP();
break ;
}
default :
{
GUI_Clear();
GUI_Delay(10000);
Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
return ;
}
}
}
void Time_Settings(void)
{
INT8U save_Hour,save_Minute ;
save_Hour=Hour ;
save_Minute=Minute ;
Key_Deal_Flag=0 ;
while(1)
{
GUITextMode=GUI_TEXTMODE_REVERSE ;
GUI_Display_Time(24,32);
GUITextMode=GUI_TEXTMODE_NORMAL ;
if(Key_Deal_Flag==1)
{
if(Keyvalue==Key_Left)
{
Minute++;
if(Minute>59)
{
Minute=0 ;
Hour++;
if(Hour>23)
Hour=0 ;
}
}
else if(Keyvalue==Key_Right)
{
Minute--;
if(Minute==255)
{
Minute=59 ;
Hour--;
if(Hour==255)
Hour=23 ;
}
}
//确认键
else if(Keyvalue==Key_Up)
{
GUI_Clear();
if(language==CH)
GUI_DispStringAtBar("时间已设置",0,32,LCD_XSIZE,GUI_TA_HCENTER);
else
GUI_DispStringAtBar("Time is set",0,32,LCD_XSIZE,GUI_TA_HCENTER);
GUI_Delay(3000);
break ;
}
//退出键
else if(Keyvalue==Key_Down)
{
Hour=save_Hour ;
Minute=save_Minute ;
break ;
}
Key_Deal_Flag=0 ;
}
}
Key_Deal_Flag=0 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -