📄 menu.c
字号:
DispChar (7, 7, StrValue[0], sel==3?1:0);
DispChar (12, 7, StrValue[1], sel==4?1:0);
DispChar (16, 7, StrValue[2], sel==5?1:0);
DispChar (12, 8, StrValue[3], sel==6?1:0);
DispChar (16, 8, StrValue[4], sel==7?1:0);
DispPhoto (0, 0, (char *)"dd",0); //去掉
MenuFlag = 1;
while(MenuFlag)
{
pMsg = GetMessagetemp(task1_tmq);
switch(pMsg->message)
{
case TM_KEYOK:
clr_kb(); //清除键盘缓存消息
if(sel != 2)
sel = DispMessage(100,120,(char *)"正在退出,是否保存数据?功能键是,其它键否",1);
;//保存设置的数据于分配的地址
WinId = 3;
MenuFlag = 0;
WinFlag = 0;
break;
case TM_KEYUP: //向上 数值累加
switch(sel)
{
case 1:
sel = 2;
break;
case 2:
sel = 1;
break;
case 3: //年份
if(IntValue[sel-3] < 2999)
IntValue[sel-3]++;
else
IntValue[sel-3] = 2000;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 4: //月份
if(IntValue[sel-3] < 12)
IntValue[sel-3]++;
else
IntValue[sel-3] = 1;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 5: //日子
if(IntValue[sel-3] < 31)
IntValue[sel-3]++;
else
IntValue[sel-3] = 1;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 6: //小时数
if(IntValue[sel-3] < 23)
IntValue[sel-3]++;
else
IntValue[sel-3] = 0;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 7: //分钟数
if(IntValue[sel-3] < 59)
IntValue[sel-3]++;
else
IntValue[sel-3] = 0;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYDOWN: //向下 数值减少
switch(sel)
{
case 1:
sel = 2;
break;
case 2:
sel = 1;
break;
case 3: //年份
if(IntValue[sel-3] > 2000)
IntValue[sel-3]--;
else
IntValue[sel-3] = 2999;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 4: //月份
if(IntValue[sel-3] > 1)
IntValue[sel-3]--;
else
IntValue[sel-3] = 12;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 5: //日子
if(IntValue[sel-3] > 1)
IntValue[sel-3]--;
else
IntValue[sel-3] = 31;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 6: //小时数
if(IntValue[sel-3] > 0)
IntValue[sel-3]--;
else
IntValue[sel-3] = 23;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
case 7: //分钟数
if(IntValue[sel-3] > 0)
IntValue[sel-3]--;
else
IntValue[sel-3] = 59;
itoa(IntValue[sel-3],StrValue[sel-3],10); //转化为字符串
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYRIGHT: //按向右键
if(sel == 1)
sel = 3; //菜单循环
else if(sel == 2)
{
WinId = 3;
WinFlag = 0;
}
else if(sel == 7)
sel = 2;
else
sel++;
MenuFlag = 0;
break;
case TM_KEYLEFT: //按向左键
if((sel > 3) && (sel <= 7))
sel--;
else if(sel == 3)
sel = 1;
MenuFlag = 0;
break;
case TM_KEYMEASURE: // 此时按测量键时,如果未进入通讯及测量操作,
//则开始测量,否则提示用户稍后进行
switch(TStatus)
{
//注意显示信息不能覆盖界面上的静态数据
case Idle: //空闲时进入测量界面
WinId = 1; //测量前界面
WinFlag = 0;
break;
case Measure: //正在启动测量
SetFont(2); //设置字体
DispString(7,7,(char *)"正在启动测量!",0);
break;
case communication: //正在传输数据
SetFont(2); //设置字体
DispString(7,7,(char *)"正在传输数据!",0);
break;
case Buff: //无效时错误
SetFont(2); //设置字体
DispString(7,7,(char *)"系统错误!",0);
break;
default:
break;
}
MenuFlag = 0;
break;
default:
break;
} //switch(pMsg->message)
}//while(MenuFlag)
}//while(WinFlag)
}
/****************************************************************************
* 函数名:ShowAdvice
* 功能: 显示医嘱信息,按测量键时,进入测量前界面;按上下键时,查看医嘱信息,按向左键
时返回上层菜单
注意: 没有医嘱信息时,
返回值: 无
****************************************************************************/
void ShowAdvice()
{
clr_scr();
DispString(1,1,(char *)"按上下键时,查看医嘱信息",0);
DispString(1,2,(char *)"按向左键时返回上层菜单",0);
DispMessage(100,120,(char *)"医嘱信息为空?按任意键返回",1);
}
/****************************************************************************
* 函数名:SetVolume
* 功能: 设置音量
打开/关闭/增加/降低
说明: 返回时WinId为3(主界面)
****************************************************************************/
void SetVolume()
{
uint8 ret,sel=1; //当前选择的菜单
uint8 WinFlag = 1; //懑足窗体切换条件时置为0
uint8 MenuFlag ;//满足菜单选择条件时,置为0
MSGtemp *pMsg; //声明消息
SetFont(2);
while(WinFlag)
{
clr_scr();
//显示界面静态数据
DispPhoto( 16,20,(char *)"音量设置",1);
//显示界面动态数据
DispPhoto (140, 130, (char *)"返回", sel==1?1:0);
DispPhoto (140, 80, (char *)"关闭", sel==2?1:0);
DispPhoto (140, 180,(char *)"打开", sel==3?1:0);
DispPhoto (40, 130,(char *)"降低", sel==4?1:0);
DispPhoto (240, 130,(char *)"增加", sel==5?1:0);
DispPhoto (0, 0, (char *)"dd",0); //去掉
MenuFlag = 1;
while(MenuFlag)
{
pMsg = GetMessagetemp(task1_tmq);
switch(pMsg->message)
{
case TM_KEYOK:
switch(sel)
{
case 1:
WinId = 3;
WinFlag = 0; //按处理后的WINID进行切换
break;
case 2:
ret = DispMessage(100,120,(char *)"音量已关闭",0);
break;
case 3:
ret = DispMessage(100,120,(char *)"音量已打开",0);
sel = 4;
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYRIGHT: //
switch(sel)
{
case 1:
sel = 5;
break;
case 4:
sel = 1;
break;
case 5:
sel = 4;
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYLEFT: //
switch(sel)
{
case 1:
sel = 4;
break;
case 4:
sel = 5;
break;
case 5:
sel = 1;
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYUP : //按向上键
switch(sel)
{
case 1:
case 2:
sel++;
break;
case 3:
sel = 1;
break;
case 4:
break;
case 5:
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYDOWN: //按向下键
switch(sel)
{
case 1:
sel = 3;
break;
case 2:
case 3:
sel--;
break;
case 4:
break;
case 5:
break;
default:
break;
}
MenuFlag = 0;
break;
case TM_KEYMEASURE: // 此时按测量键时,如果未进入通讯及测量操作,
//则开始测量,否则提示用户稍后进行
switch(TStatus)
{
//注意显示信息不能覆盖界面上的静态数据
case Idle: //空闲时进入测量界面
WinId = 1; //测量前界面
WinFlag = 0;
break;
case Measure: //正在启动测量
SetFont(2); //设置字体
DispString(7,7,(char *)"正在启动测量!",0);
break;
case communication: //正在传输数据
SetFont(2); //设置字体
DispString(7,7,(char *)"正在传
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -