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

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

編輯:關於C語言

然後看看隱藏和顯示面板

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;

int ch;

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();

//q退出,按1-3鍵顯示和隱藏對應的面板

int isshow[3]={1,1,1};

while((ch = getch()) !='q')

{ switch(ch)

{

case '1':

if ((++isshow[0])%2) show_panel(my_panels[0]);

else hide_panel (my_panels[0]);

break;

case '2':

if ((++isshow[1])%2) show_panel(my_panels[1]);

else hide_panel (my_panels[1]);

break;

case '3':

if ((++isshow[2])%2) show_panel(my_panels[2]);

else hide_panel (my_panels[2]);

break;

}

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

比如把2號面板隱藏,效果如下


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