ncurses:垫的Subwin或子垫

时间:2016-02-11 10:19:57

标签: c ncurses

假设有一个ncurses pad。

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

2.。)我可以创建垫的子垫吗?如果是,请在子键盘上调用wrefreshprefresh是否有意义?

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

1 个答案:

答案 0 :(得分:2)

垫子不是常规窗户;你不能在垫子里面做一个窗口。

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

  • subpad中,它会检查以确保父级是 pad ,然后调用derwin来完成剩余的工作。如果父级不是 pad ,则subpad会返回错误。
  • subwin使用derwin,这可确保如果父级是 pad ,则结果为pad。无论哪种方式,结果都与父级相同。

一个打击垫与一个窗口没有完全“共享”内存;它只是将坐标转换为窗口的便捷方式。