屏幕显示对于嵌入式系统开发尤其重要,如果屏幕编程没有处理好,则会给自己以及他人造成很大的困扰,程序会变的混乱不堪,特别是对于菜单的操作。
这边我介绍一种利用面向对象封装的思想来设计菜单操作,让程序变得清晰明了,并且具有很强的扩展性。
程序如下:
#include "stdio.h"
#include "stdlib.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned long DWORD;
#define MenuNum 2
extern BYTE MenuIndex=0;
typedef void(*ExecFun)();
void PressOKKey()
{
printf("just a test, press ok key\n");
}
void PressCancelKey()
{
printf("just a test, press cancel key\n");
}
typedef struct SysMenu
{
char *text; //菜单文本
BYTE Xpos,Ypos; //菜单在LCD上显示的坐标
ExecFun execFun;
}SysMenuType;
static SysMenuType Menu[MenuNum]=
{
{"Brightness",10,20,PressOKKey},
{"Contrast",20,20,PressCancelKey}
};
int main()
{
Menu[MenuIndex].execFun();
system("pause");
return 0;
}