3 curses库窗口(WINDOW)处理
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.1 什么是窗口
===============
* 窗口是屏幕上的一块区域,在其上面可以进行各种输出及其操作.
* 窗口可以位于标准屏幕的任意位置,窗口之间可以相互重叠.
* 窗口可以同时包含与它们相关的子窗口,任何在父窗口与子窗口重叠区域的变化会同时影响到他们中的任何一个
3.2 窗口操作
=============
3.2.1 创建和删除窗口
---------------------
/**
@brief 创建窗口并返回WINDOW指针
@param lines 需要创建窗口所占的总行数
@param cols 需要创建窗口所占的总列数
@param begin_x 窗口左上角所在的行数(x坐标)
@param begin_y 窗口左上角所在的列数(y坐标)
@return 返回WINDOW类型的指针,如果创建失败,函数返回NULL
@note 如果lines或者cols为0,函数自动创建一个行数和列数分别为LINES和COLS的窗口.
所创建窗口的大小不能超过实际屏幕的大小,如果超过了,则返回失败.
对于不再使用的窗口有必要及时清屏,可以使用werase()和wclear()实现.
不管werase()还是wclear()都不能清除内存空间,需要调用delwin()释放内存.
*/
WINDOW* newwin(int lines,int cols,int begin_x,int begin_y);
/**
@brief 删除窗口
@param win 待删除窗口的指针
@note 在主窗口删除之前必须先删除与它相关连的所有子窗口
*/
int delwin(WINDOW* win);
/**
@breif 创建子窗口
@param win 父窗口的指针
@param lines,cols 子窗口的总行数和列数
@param begin_x,begin_y 子窗口的左上角在标准屏幕的相对位置
@note 注意相对位置是想对于*标准屏幕*的,而不是父窗口的!!
*/
WINDOW* subwin(WINDOW* win,int lines,int cols,