subwin 子例程

用途

在现有窗口中创建子窗口。

Curses 库 (libcurses.a)

语法

#include <curses.h> WINDOW *subwin (父窗口, 行数, NumCols,线路,专栏) 窗口 * ParentWindow ; int 行数, NumCols, 线路, 专栏;

描述

subwin 子例程在现有窗口中创建子窗口。 必须为与终端显示器相关的子窗口提供坐标。 请注意,子窗口共享其父窗口缓冲区。 通过父窗口或其任何子窗口对子窗口所覆盖区域中的共享窗口缓冲区进行的更改将影响共享窗口缓冲区的所有窗口。

更改子窗口的图像时,必须先在父窗口上调用 图奇温 (touchwin 子例程) 或 触线 子例程,然后再在父窗口上调用 Wrefresh (刷新或 wrefresh 子例程) 子例程。

对一个窗口的更改将影响这两个窗口的字符图像。

参数

描述
NumCols 指示子窗口宽度中的垂直列数。 如果将 0 作为 NumCols 值传递,那么子窗口将从 "列" 运行到其父窗口的右边缘。
NumLines 指示子窗口高度中的水平线数。 如果将 0 作为 NumLines 参数传递,那么子窗口将从 "行" 运行到其父窗口的底部。
ParentWindow 指定子窗口的父窗口。
指定子窗口左上角的水平坐标。 此坐标相对于终端的 (0 , 0) 坐标,而不是父窗口的 (0 , 0) 坐标。
注: 终端的左上角由坐标 (0 , 0) 引用。
指定子窗口左上角的垂直坐标。 此坐标相对于终端的 (0 , 0) 坐标,而不是父窗口的 (0 , 0) 坐标。
注: 终端的左上角由坐标 (0 , 0) 引用。

返回值

subwin 子例程成功时,它返回指向子窗口结构的指针。 否则,将返回以下内容:

描述
ERR 指示一个或多个参数无效,或者没有足够的存储空间可用于新结构。

示例

  1. 要创建子窗口,请使用:
    WINDOW *my_window, *my_sub_window;

    my_window = newwin (derwin, newwin, or subwin Subroutine)
                    (5, 10, 20, 30);

    my_sub_window = subwin(my_window, 2, 5, 20, 30);
    my_sub_window现在是子窗口2深线,5列宽,从其父窗口的相同坐标开始my_window. 即,子窗口的左上角在坐标 y = 20, x = 30右下角在坐标 y = 21, x = 34.
  2. 要创建与其父代右侧齐平的子窗口,请使用:
    WINDOW *my_window, *my_sub_window;

    my_window = newwin (derwin, newwin, or subwin Subroutine)
                    (5, 10, 20, 30);

    my_sub_window = subwin(my_window, 2, 0, 20, 30);

    my_sub_window现在是子窗口2行深,一直延伸到其父窗口的右侧my_window,并从同一坐标开始。 即,子窗口的左上角位于坐标 y = 20, x = 30右下角在坐标 y = 21, x = 39.

  3. 要在其父代的右下角创建子窗口,请使用:
    WINDOW *my_window, *my_sub_window

    my_window = newwwin (derwin, newwin, or subwin Subroutine)
                (5, 10, 20, 30);

    my_sub_window = subwin(my_window, 0, 0, 22, 35);

    my_sub_window现在是一个子窗口,填充其父窗口的右下角,my_window,从坐标 y = 22, x = 35. 即,子窗口的左上角在坐标 y = 22, x = 35右下角在坐标 y = 24, x = 39.