4 curses库基垫(pad)处理

~~~~~~~~~~~~~~~~~~~~~~~~


4.1 基垫说明

=============

* 基垫也是一种窗口,它在各方面与WINDOW一样,只是它的大小和位置不再局限于终端屏幕的可视部分.

* 与子窗口类似,基垫也同样有子基垫(subpad)

* 大部分窗口操作的函数都可以直接作用在基垫上,只有少数才是基垫独有的.

* 由于基垫可以完全看不见,这就导致了基垫与WINDOW的一个最主要的差异,即基垫与标准屏幕没有直接关联


4.2 基垫函数说明

=================

/**
 @brief 创建新基垫
 @param lines,cols 指定创建基垫的总行数和总列数
 @return 失败的话,返回NULL
 @note 由于与标准屏幕没有任何关联,因此参数中不需要在标准屏幕中的定位参数
  */
 WINDOW* newpad(int lines,int cols);
 /**
 @brief 创建子基垫
 @param pad 要创建子基垫的父基垫
 @param lines,cols 子基垫的行数和列数
 @param begin_x,begin_y 子基垫左上方在父基垫中的相对位置
  */
 WINDOW* subpad(WINDOW* pad,int lines,int cols,int begin_x,int begin_y);
 /**
 @brief 刷新基垫指定区域
 @param prow,pcol 描述了基垫中需要刷新到标准屏幕中的区域的左上角
 @param sminrow,smincol,smaxrow,smaxcol 指示标准屏幕上显示基垫的矩形区域
 @see   pnoutrefresh() doupdate()
  */
 int prefresh(WINDOW* pad,int prow,int pcol,int simnrow,int smincol,int smaxrow,int smaxcol);