c - ncurses: Subwin 或 pad 的 subpad

标签 c ncurses

假设有一个 ncurses pad。

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

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

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

最佳答案

Pad 不是普通的窗口;你不能在 pad 里面做一个窗口。

ncurses 库进行这些与问题相关的检查:

  • subpad ,它检查以确保父级是一个pad,然后调用derwin完成剩下的工作。如果父级不是 padsubpad 返回错误。
  • subwin 使用 derwin,它确保如果父级是 pad,则结果是 pad。无论哪种方式,结果都是与父级相同的类型。

pad 并不完全与窗口“共享”内存;它只是一种将坐标转换为窗口的便捷方式。

关于c - ncurses: Subwin 或 pad 的 subpad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336532/

相关文章:

c++ - 如何设置标准输出的控制台光标位置

c - 如何在(旧)opengl (2.4) 中按程序绘制(超/n-)立方体

c++ - 在 Linux 上,在 C/C++ 中,指针是否会设置 MSB?

c - 当窗口超过 8 列时,边框无法正确绘制

c - 具有非阻塞输入和 fork 的 Ncurses

c - 为什么颜色在 ncurses 中不起作用?

c++ - 如何使用 ncurses 在不同的终端上以相同的方式呈现 Unicode?

c - 现场程序错误但不在代码块上

c - 读取 proc 文件时权限被拒绝错误

c - c 中的滚动总计循环