?? menu.h.bak
字號:
/*
LessCPUUseage:
高亮顯示當前項的做法是
1.反顯整個Bar項文字 提示當前項
2.通過一個'>'來提示當前位置
第1種方法在低速CPU和LCD上比較費時
因此這個情況下用第2種方法,畢竟反顯一個'>'比反顯整行要省事的多
但沒有解決根本問題,如果依然會出現要全部刷新的情況
如果CPU慢#define LessCPUUseage
否則不定義該值
*/
//
//#define LessCPUUseage
//動態生成條項菜單 需要回滾方式的支持
//#define DynamicBar
//是否回滾方式
#define RockBack
//數字鍵快捷方式
//需要預定義數字鍵的鍵值Key_1---Key_9
//并提供一個函數能把鍵值轉化成實際對應數字 Key = chang_code(Key);
//#define DigiKeyLink
//檢查如果需要動態條項菜單,就需要回滾方式,這里做檢查
#ifdef DynamicBar
#ifndef RockBack
#error "DynamicBar need RockBack!"
#error "#define RockBack pls"
#endif
#endif
//--------------
//顯示位置的宏定義
//父Bar項的顯示位置
#define FatherXOffset 10 //Father的X偏置
#define FatherYOffset 2 //Father的Y偏置
//Bar項的顯示XY偏置
#define BarXOffset 0 //Bar的X偏置
#define BarYOffset 0 //Bar的Y偏置
//Bar項的XY尺寸
#define BarXSize (7*12) //Bar的長度
#define BarYSize 2 //Bar的間隔
//語言代碼
#define CN 0
#define EN 1
//也就是連續使用Push的個數
#define MenuSize 4 //菜單深度最大值
#ifdef DynamicBar
#define FixedData 0
#define DynamicData 1
//條項內容的來源是固定的還是動態生成的,通常是固定的,
#endif
//U8 DispMax = 3; //單屏可以顯示的最大項 通常這是個固定值--因為你的液晶的大小決定了你一次可以顯示的多少,你也可以在程序中修改,但記得維護它--因為所有的Bar型菜單都是要用到它的
#define DispMax 3
//----------------------------------------------------
extern U8 ReFlash ; //子項菜單返回 刷新標志
extern U8 Flash ; //跳轉進入子菜單 刷新標志
extern U8 language; //語言標志
extern U8 KeyFuncIndex ; //索引
extern U8 FatherIndex[MenuSize+1]; //父菜單備份數組
extern U8 Layer; //菜單層數
extern U8 ItemBackup[MenuSize]; //當前菜單項備份
extern U8 ItemBackup_i; //
extern U8 WhereBackup[MenuSize]; //反顯位置備份
extern U8 WhereBackup_i; //
extern U8 KeyPressCount; //統計連續按鍵時間,長時間按鍵則 版本顯示
#ifdef DynamicBar
extern U8 BarDataMode;
#endif
extern U8 Item; //當前Bar項 范圍:[0,ItemNum-1] 包括0 包括ItemNum-1 共包括ItemNum個取值
extern U8 ItemNum; //Bar項數
extern U8 Where; //當前反顯位置,[0,DispMax-1] 反映反顯的Bar在屏幕上的位置
extern U8 DispMin; //ItemNum和DispMax中的小者
//當前Bar顯示內容指針
extern U8 _CONST_ **DispItem; //項顯示內容指針
//---------------------------------------------------
//返回當前菜單
#define SelfMenuIndex FatherIndex[Layer-1]
//----------------------------------------------------
extern void Jump2Menu(U8 Index);
//當前Bar顯示內容指針
//-----------------------------------------------------
//Bar型菜單的數據結構
struct Menu
{
U8 _CONST_ **Text; //指向顯示內容數組的指針
U8 TextNum; //項個數
void* (*Action)(); //對應的執行函數
};
//圖標層
extern _CONST_ struct Menu IcoMenu[];
//功能菜單
extern _CONST_ struct Menu MenuFunc[];
//參數菜單
extern _CONST_ struct Menu MenuPara[];
//測量菜單
extern _CONST_ struct Menu MenuMeasure[];
//語言菜單
extern _CONST_ struct Menu MenuLanguage[];
//Tip
extern _CONST_ struct Menu Tip[];
//圖標
extern U8 _CONST_ * _CONST_ icos[];
//菜單資源指針
extern struct Menu * BarMenu;
//Tip指針
extern struct Menu * TipBar;
//--------------------------------------------------------------------
#define Enter_PosX 50 //"進入"顯示的位置
#define Enter_PosY 6
#define ICO_PosX 48 //圖標顯示的位置
#define ICO_PosY 2
#define ICO_XSize 32 //圖標的尺寸
#define ICO_YSize (-2)
#define MenuBarPosX 125
#define MenuBarNumPosX 120
//-----------------------
//如下定義從KeyTab中得到
//調整KeyTab時必須更新如下的定義
//否則菜單鏈接出錯!
#define MenuTopIndex 0
#define MenuIndex 5
#define MenuFuncIndex 10
#define MenuParaIndex 15
#define MenuLanguageIndex 20
#define MenuMeasureIndex 25
#define MenuDataIndex 30
void BarMenuInit(void);
void BarMenuLeft(void);
void BarMenuRight(void);
void PUSH(void);
void POP(void);
void DispMenuTop();
U8 CheckKey(void);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -