ncurses: Subwin 或 pad 的 subpad

ncurses: Subwin or subpad of a pad

假设有一个 ncurses pad。

1.) 我可以创建一个 subwin 的 pad 吗? 理论上,subwin 将与 pad 共享内存。但是当我在这个 subwindow 上调用 wrefresh 时会发生什么?

2.) 我可以创建一个 subpad 的 pad 吗?如果是,在 subpad 上调用 wrefreshprefresh 是否有意义?

我目前的理解是,必须为 pad 创建一个 subpad。传递给 subpad 函数的坐标指定位置 w.r.t。 (parent) 垫。返回的 subpad 在概念上是一个 window(不能大于它的 parent 结构),尽管它必须用 prefresh 函数放到屏幕上。它与 parent pad 共享内存。正确吗?

垫子不规则windows;你不能在垫子里做一个 window。

ncurses 库进行这些检查,这与问题有关:

  • subpad, it checks to ensure that the parent is a pad, and then calls derwin 中完成剩下的工作。如果父级不是 padsubpad returns 错误。
  • subwin 使用 derwin,这确保如果父级是 pad,则结果是 pad。无论哪种方式,结果都是与父级相同的类型。

一个pad并不完全"share"内存跟一个window;这只是将坐标转换为 window.

的一种便捷方式