在软件设计时,如果添加界面和对应的按键处理,很灵活,只需要新添加一个文件就可以了,文件的内容,只需要实现OnPain和对应的OnKey
#include "PageMenu.h"
/*=====================================================
=
=====================================================*/
const char mainMenuTab[] = /*
1234567890123456*/"\
1. 现场采集 \
2. 数据上传 \
3. 存储状态查询 \
4. 时间设置 \
5. 对比度设置 \
6. 恢复出厂设置 \
7. 关于 ";
/*=====================================================
=
=====================================================*/
void PageMenuOnPain(void);
void WndMenuOnKey(short key);
const TypePage pageMenu = {PageMenuOnPain, WndMenuOnKey};
/*************************************************************************
* 函数原型:
* 功能描述:
* 入口参数:
* 出口参数:
* 返 回 值:
*************************************************************************/
void PageMenuOnPain(void)
{
WndMenuInit(mainMenuTab, 7);
}
/*************************************************************************
* 函数原型:
* 功能描述:
* 入口参数:
* 出口参数:
* 返 回 值:
*************************************************************************/
void WndMenuOnKey(short key)
{
int res;
switch (key)
{
case KEY_F1:
case KEY_ENTER:
res = WndMenuGetSelet();
switch (res)
{
case 1:
WndPageSet(&pageSimp);
break;
case 2:
WndPageSet(&pagePclink);
break;
case 3:
WndPageSet(&pageInquire);
break;
case 4:
WndPageSet(&pageRtc);
break;
case 5:
WndPageSet(&pageGray);
break;
case 6:
SPageInit();
WndPageSet(&pageMenu, 1);
break;
case 7:
WndPageSet(&pageAbout);
break;
}
break;
case KEY_F2:
case KEY_F3:
WndPageSet(&pageMain);
break;
case KEY_1:
WndPageSet(&pageSimp);
break;
case KEY_2:
WndPageSet(&pagePclink);
break;
case KEY_3:
WndPageSet(&pageInquire);
break;
case KEY_4:
WndPageSet(&pageRtc);
break;
case KEY_5:
WndPageSet(&pageGray);
break;
case KEY_6:
SPageInit();
WndPageSet(&pageMenu, 1);
break;
case KEY_7:
WndPageSet(&pageAbout);
break;
case KEY_UP:
WndMenuSelet(-1);
break;
case KEY_DOWN:
WndMenuSelet(1);
break;
case KEY_POWER:
WndPageSet(&pagePower);
break;
}
}
pageMain,pageAbout,pageRtc,pagePclink等文件,他们的结构很类似。都是实现了OnPaint和OnKey函数。
如:pagePclink.c文件内容:
实现了PagePclinkOnPaint和PagePclinOnKey函数.
CommPclink函数是自己想要实现的功能,可以自己定义。
#include "pagePclink.h"
/*=====================================================
=
=====================================================*/
void PagePclinkOnPaint(void);
void PagePclinOnKey(short key);
const TypePage pagePclink = {PagePclinkOnPaint, PagePclinOnKey};
/*************************************************************************
* 函数原型:
* 功能描述:
* 入口参数:
* 出口参数:
* 返 回 值:
*************************************************************************/
void PagePclink