typedef
struct
key_table;
結構體包含5個變數,分別是函式的索引號即使用者想要執行哪個函式的代號,然後有三個鍵,使用者可以自己定義別的按鍵,最後乙個是函式指標,即索引號對應的函式。
key_table code table[n]=,
,,,,
,,..
....
....
..};
首先可以先這樣定義該陣列
key_table code table[n]=,,
,,,,
,…};其中,x,y,z是未知數,先不確定,他們對應的是三個鍵按下要要執行的索引值,
如果四個鍵,就有四個未知數,在確定他們之前,必須要了解自己函式執行什麼命令。
假如開始時,執行陣列裡面的第乙個即table[0],而想在此按上鍵執行函式fun6
那麼table[0]裡面需要這樣設定{0,5,y,z,(*fun1)}
同樣,如果希望按下鍵執行fun7則需要設定為{0,x,6 ,z,(*fun1)}
如果希望按確認鍵執行fun3則需要設定為{0,x,y, 2 , (*fun1)}
如果上面三種情況都想要就設定為 即操作不同的按鍵執行不同的操作。{0,5,6,2,(*fun1)}
其它陣列元素以此類推。這一步做完了看主程式裡面(主要是while(1)裡面)
/*******************find index****************************/
switch
(key)
current_operation_index=table[func_index]
.current_operation;
(*current_operation_index)()
;//執行當前操作函式
其中,key是返回的按鍵值,這個使用者視情況而定,
主要是以結構體為基礎設計的,以12864顯示函式代替了使用者需要的函式功能,只需要修改相應的函式和索引號,就可以達到任意介面切換了
#include
#include
"fun.h"
#include
"lcd12864.h"
#include
"delay.h"
#define uchar unsigned char
sbit keydown=p0^0;
sbit keyenter=p0^1;
sbit keyup=p0^2;
uchar func_index=0;
void
(*current_operation_index)()
;typedef
struct
key_table;
key_table code table[30]
=,//第一層,顯示【清華大學】、北京大學、重慶三峽學院、返回
,//第一層,顯示清華大學、【北京大學】、重慶三峽學院、返回
,//第一層,顯示清華大學、北京大學、【重慶三峽學院】、返回
,//第一層,顯示清華大學、北京大學、重慶三峽學院、【返回】
,//第二層,清華大學層下顯示【地點】、建立時間、簡介、返回
,//第二層,清華大學層下顯示地點、【建立時間】、簡介、返回
,//第二層,清華大學層下顯示地點、建立時間、【簡介】、返回
,//第二層,清華大學層下顯示地點、建立時間、簡介、【返回】
,//第二層,北京大學層下顯示【歷史】、政治、簡介、返回
,//第二層,北京大學層下顯示歷史、【政治】、簡介、返回
,//第二層,北京大學層下顯示歷史、政治、【簡介】、返回
,//第二層,北京大學層下顯示歷史、政治、簡介、【返回】
,//第二層,重慶三峽學院層下顯示【簡介】、最佳院系、最佳實驗室、返回
,//第二層,重慶三峽學院層下顯示簡介、【最佳院系】、最佳實驗室、返回
,//第二層,重慶三峽學院層下顯示簡介、最佳院系、【最佳實驗室】、返回
,//第二層,重慶三峽學院層下顯示簡介、最佳院系、最佳實驗室、【返回】
,//第三層,清華大學地點層
,//第三層,清華大學創時間層
,//第三層,清華大學簡介層
,//第三層,北京大學歷史層
,//第三層,北京大學政治層
,//第三層,北京大學簡介層
,//第三層,重慶三峽學院簡介層
,//第三層,重慶三峽學院最佳院系層
,//第三層,重慶三峽學院最佳實驗室層
,//第0層};
intmain
(void)if
(keydown==0)
if(keyenter==0)
init_lcd()
;}current_operation_index=table[func_index]
.current_operation;
(*current_operation_index)()
;//執行當前操作函式
}}
python 多級選單 python多級選單
該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 dic china 直轄市 北京市 東城區 西城區 崇文區 宣武區 朝陽區 海淀區 豐台區 石景山區 門頭溝區 房山區 通州區 順義區 昌平區 大興區 懷柔區 平谷區 延慶縣 密雲縣 省 浙江省 杭州市 拱墅區 上城區 下城區 江乾區 西湖區 濱江區 蕭...
Excel實現多級選單聯動
開啟excel辦公 將我們需要聯動的多級選單資料按排版方式編寫好,如下 我這裡用 省 地級市 縣級市 鄉鎮 排版 1.首先我們定位到省級選單,選中a1 b5單元格,按ctrl g快捷鍵調出 定位 對話方塊,選擇 定位條件 後點選 常量 確定 2.在選單欄點選 公式 依次選擇 根據所選內容建立定義名稱...
python 多級選單(多級登入)
1 簡單繁多版 未優化之前 author liangchen date 2019 8 15 menu 東湖區 吉安 吉水 上海 嘉定新城 徐匯 徐家匯站 廣東 白石山 惠州 人字岡 flag true while true and flag for i in menu print i select1...