|
#include "datatype.h"
#include "menu.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void func(void)
{
}
//首先定義一個菜單結(jié)構(gòu)體
typedef struct menu //定義一個菜單
{
unsigned char range_from,range_to; //當(dāng)前顯示的項開始及結(jié)束序號
unsigned char itemCount; //項目總數(shù)
unsigned char selected; //當(dāng)前選擇項
unsigned char *menuItems[17]; //菜單項目
struct menu **subMenus; //子菜單
struct menu *parent; //上級菜單 ,如果是頂級則為null
void (**func)(); //選擇相應(yīng)項按確定鍵后執(zhí)行的函數(shù)
}Menu;
Menu MainMenu = { //定義主菜單
0,3,4,0, //默認(rèn)顯示0-3項,總共4項,當(dāng)前選擇第0項
{
"測量表 ", // >表示有下級選項
"其他設(shè)置 ",
"保護設(shè)定 ",
"查詢 >"
}
};
Menu searchMenu = { //查詢菜單
0,3,6,0,
{
"記帳記錄明細 ",
"未采集記錄數(shù) ",
"設(shè)備機號 ",
"本機IP地址 ",
"記錄空間大小 ",
"軟件版本 "
}
};
Menu *currentMenu; //當(dāng)前的菜單
//初始化菜單:
void initMenu()
{
char mempool[512];
init_mempool (&mempool, sizeof(mempool));
MainMenu.subMenus = malloc(sizeof(&MainMenu)*4);
MainMenu.subMenus[0] = &searchMenu;//第1到3項沒有子菜單置null,選擇后程序會調(diào)用func中相應(yīng)項中的函數(shù)
MainMenu.subMenus[1] = NULL;
MainMenu.subMenus[2] = NULL;
MainMenu.subMenus[3] = NULL;//第四項查詢有子菜單
MainMenu.func = malloc(sizeof(&func)*4);
MainMenu.func[0] = NULL;
MainMenu.func[1] = NULL;
MainMenu.func[2] = &func;//當(dāng)選擇了并按了確定,會執(zhí)行func函數(shù)
MainMenu.func[3] = NULL;
MainMenu.parent = NULL;//表示是頂級菜單
searchMenu.subMenus = malloc(sizeof(&searchMenu)*6);
searchMenu.subMenus[0] = searchMenu.subMenus[1] = searchMenu.subMenus[2] = searchMenu.subMenus[3] = searchMenu.subMenus[4] = searchMenu.subMenus[5] = NULL;
searchMenu.func = malloc(sizeof(&printf)*6);
searchMenu.func[0] = searchMenu.func[1] = searchMenu.func[2] = searchMenu.func[3] = searchMenu.func[4] = searchMenu.func[5] = NULL;
searchMenu.parent = &MainMenu;//上一級菜單是MainMenu.進入查詢子菜單后按返回鍵,將會顯示這個菜單項
currentMenu = &MainMenu;
}
void main(void)
{
} |
|