Ncurses學習經歷(十三)選單系統的核心

2021-08-20 12:26:07 字數 1272 閱讀 9881

如你在上面的例子中所看到的,menu_driver 在更新選單時有著舉足輕重的作用。所以了解

它的各個選項和它們的作用就很有必要了。前面已經解釋過,menu_driver()的第二個引數

可以是乙個導航請求。乙個可列印的字元(ascii 碼)或key_mouse 鍵值。我們來剖析

一下各個導航請求:

17.4 含選單視窗

每個已建立的選單都對應著乙個視窗和乙個子視窗。選單視窗顯示選單的標題或邊框線。菜

單子視窗顯示當前可選的選單項。而在上面的例子裡我們並沒有指定視窗或子視窗。當視窗

未被指定時,stdscr 將作為選單視窗。然後選單系統根據將要顯示的選單項計算子視窗的大

小。選單項就在這些規劃好的子視窗中顯示出來。讓我們利用這些視窗,來列印乙個有邊框

線和標題的選單。

ncurses programming howto 中文版(第二版)

67例19. 乙個選單視窗用法的例子

#include #define array_size(a) (sizeof(a) / sizeof(a[0]))

#define ctrld 4

char *choices = ;

void print_in_middle(window *win, int starty, int startx, int width, char *string, chtype

color);

int main()

wrefresh(my_menu_win);

}/* 取消遞送並釋放占用的記憶體*/

unpost_menu(my_menu);

free_menu(my_menu);

for(i = 0; i < n_choices; ++i)

free_item(my_items[i]);

endwin();

}void print_in_middle(window *win, int starty, int startx, int width, char *string, chtype

color)

這個例子建立了這樣乙個選單:有標題、邊框,以及一根用來分隔開標題和選單項的線。如

你所見,使用set_menu_win()函式把選單附加到乙個視窗上,之後使用set_menu_sub()

函式把選單的子視窗也附加到這個視窗上,選單項就可以在子視窗中顯示。使用

set_menu_mark()函式可以來設定標誌串,標誌串就會出現在所選選單項的左邊。

Ncurses學習經歷(十二)選單庫

選單庫對cureses 基礎庫進行了很好的擴充套件。你可以通過這個庫所提供的函式方便的建立菜 單。如果你想讓它更美觀,可以定製它的顯示效果。下面我們就來看看這個庫。選單是乙個用來幫助使用者選擇子選單項的螢幕。簡而言之,選單就是乙個選單項的集合,使 你可以方便的從中選擇相應的選單命令。curses 選...

nandflash學習經歷

經過一段時間的奮鬥,終於對nandflash的框架有點了解!首先從 drivers mtd nand at91 nand.c開始分析 at91 nand probe 獲得nandflash 的型別 drivers mtd nand nand base.c nand scan 獲得真正nandflas...

Qt學習經歷

乙個qt的小例子 qpushbutton button new qpushbutton quit connect editor new qtextedit editor setfont font highlighter new highlighter editor document 其中connec...