重明鸟软件知识平台
@Linux下Curses编程(2)
这节我们来说下如何在curses里创建窗口。curses初始化后,获得的是全屏幕控制。创建窗口函数有三个:newwin,derwin和subwin。定义如下:
window* newwin(int nlines,int ncols,int beginY,int beginX);
window* derwin(window* orig,int nlines,int ncols,int beginY,int beginX);
window* subwin(window* orig,int nlines,int ncols,int beginY,int beginX);
窗口创建后没有边框修饰的。所以一般用box函数来绘制边框。这三个函数的用法在下面的例子里描述。
示例程序
#include <curses.h>
#include <iostream>

using namespace std;

int main()
{
	//初始化屏幕
	WINDOW* root  = initscr();

	//绘制主窗口(全屏)
	box(root,ACS_VLINE,ACS_HLINE);

	//创建子窗口,位置(5,5)
	WINDOW* child1 =newwin(20,20,5,5);
	box(child1,ACS_VLINE,ACS_HLINE);

    //刷新主窗口
	refresh();
	getch();

	//derwin定义子窗口,位置相对于root的偏移(20,10)
	WINDOW* child2 = derwin(root,20,20,10,20);
	box(child2,ACS_VLINE,ACS_HLINE);

	getch();
	//刷新子窗口
	wrefresh(child2);

	//subwin定义子窗口,位置相对于root的绝对位置(40,20)
	WINDOW* child3 = subwin(root,20,20,20,40);
	box(child3,ACS_VLINE,ACS_HLINE);

	getch();
	wrefresh(child3);

	getch();

	endwin();
	return 1;
}

运行结果
从左到右依次是newwin,derwin和subwin创建的窗口
@站内查找
Copyright @ 2011-2018 by szc  桂ICP备11003301号-1  桂公网安备45040302000027号  Email:szcsoft@qq.com