程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C指針原理(64)-Ncurses-文本終端的圖形

C指針原理(64)-Ncurses-文本終端的圖形

編輯:關於C語言

面板庫(Panel Library)能方便得管理面板:

1. 使用newwin()函數創建一個窗口,它將添加到面板裡。

2. 創建面板(利用所創建的窗口)並將面板依據用戶指定的可見順序壓進棧。調用

new_panel()函數即可創建該面板。

3. 調用update_panels()函數就可將面板按正確的順序寫入虛擬屏幕,調用doupdate()函

數就能讓面板顯示出來。

4. show_panel(), hide_panel(), move_panel()等函數分別用來對面板進行顯示、隱藏、移

動等操作時,可以使用panel_hidden()和panel_window()這兩個輔助函數。你也可以

使用用戶指針來存儲面板的數據,set_panel_userptr() 和panel_userptr()函數分別用

來設置和取得一個面板的用戶指針。

5. 當一個面板使用完畢後,用del_panel()函數就可刪除指定的面板。

下面是一個例子

dp@dp:~/cursestest % cat x.c

#include

int main()

{

WINDOW *my_wins[3];

PANEL *my_panels[3];

int lines = 10, cols = 40, y = 2, x = 4, i;

initscr();

cbreak();

noecho();

/* 為每個面板創建窗口*/

my_wins[0] = newwin(lines, cols, y, x);

my_wins[1] = newwin(lines, cols, y + 1, x + 5);

my_wins[2] = newwin(lines, cols, y + 2, x + 10);

/* 為窗口添加創建邊框以便你能看到面板的效果*/

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

box(my_wins[i], 0, 0);

/* 按自底向上的順序,為每一個面板關聯一個窗口*/

my_panels[0] = new_panel(my_wins[0]);

/* 把面板0 壓進棧, 疊放順序: stdscr0

*/

my_panels[1] = new_panel(my_wins[1]);

/* 把面板1 壓進棧, 疊放順序: stdscr01

*/

my_panels[2] = new_panel(my_wins[2]);

/* 把面板2 壓進棧, 疊放順序: stdscr012*/

/* 更新棧的順序。把面板2 置於棧頂*/

update_panels();

/* 在屏幕上顯示*/

doupdate();

getch();

endwin();

}

麥好的AI樂園博客所有內容是原創,如果轉載請注明來源

http://blog.csdn.net/myhaspl/


dp@dp:~/cursestest % gcc -lncursesw -lpanel x.c -o mytest

dp@dp:~/cursestest % ./mytest

屏幕上顯示了三個窗口,每個窗口都是一個面板,每個面板關聯一個窗口。如下圖所示:


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved