设为首页 加入收藏

TOP

C指针原理(64)-Ncurses-文本终端的图形
2014-11-23 17:41:15 来源: 作者: 【 】 浏览:6
Tags:指针 原理 -Ncurses- 文本 终端 图形

面板库(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

屏幕上显示了三个窗口,每个窗口都是一个面板,每个面板关联一个窗口。如下图所示:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C指针原理(65)-Ncurses-文本终端.. 下一篇List Ctrl

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: