copywin 子例程

用途

复制窗口的区域。

Curses 库 (libcurses.a)

语法

#include <curses.h>
int copywin(const WINDOW  *scrwin,
WINDOW  *dstwin,
int  sminrow,
int  smincol,
int  dminrow,
int  dmincol,
int  dmaxrow,
int  dmaxcol,
int  overlay);

描述

copywin 子例程提供对 overlayoverwrite 子例程的更精细的控制。 如同在 prefresh 子例程中一样,在目标窗口 (dimrowdimcol) 和 (dmaxrowdmaxcol) 以及源窗口的左上角坐标 (sminrowsmincol) 中指定了矩形。 如果 overlay 子例程为 TRUE ,那么复制是无损的,如 overlay 子例程中所示。 如果 overlay 子例程是 FALSE ,那么复制是破坏性的,就像在 overwrite 子例程中一样。

参数

描述
* srcwin 指向包含要复制的区域的源窗口。
* dstwin 指向要复制到的目标窗口。
sminrow 指定源区域的左上行坐标。
smincol 指定源区域的左上角列坐标。
dminrow 指定目标区域的左上方行坐标。
dmincol 指定目标区域的左上角列坐标。
dmaxrow 指定目标区域的右下方行坐标。
dmaxcol 指定目标区域的右下列坐标。
覆盖程序段/覆盖 (overlay) 设置副本类型。 如果设置为 TRUE ,那么副本是无损的。 否则,如果设置为 FALSE ,那么副本具有破坏性。

返回值

成功完成后, copywin 子例程返回 OK。 否则,将返回 ERR。

示例

要复制到由坐标 (30,40), (30,49), (39,40) 和 (39,49) 在源窗口中以坐标 (0, 0) 开头,输入以下命令:

WINDOW *srcwin, *dstwin;

copywin(srcwin, dstwin, 
0, 0, 30,40, 39, 49,
 TRUE); 

此示例将以坐标 (0, 0) 开头的源窗口中的 10 行和 10 列复制到由左上坐标 (30,40) 和右下坐标 (39,49) 定义的目标窗口中的区域。 因为 Overlay 参数设置为 TRUE ,所以复制是非破坏性的,并且不会复制源窗口中的空白。