1

我有一个正在调试/维护的 C/ncurses 程序。该程序会进行两次 ripoffline:第一次是放置标题栏,第二次是在页面顶部放置菜单栏。

我需要下拉一些菜单,以便在下拉菜单之前保存屏幕。在 InitMenu 函数中,我有以下代码:

 savewin = newwin (0, 0, 0, 0);
 overwrite (curscr, savewin);
 wrefresh(savewin)

问题是 savewin 正在与菜单和被撕下的线一起复制,但它被绘制在被撕下线下方的屏幕上。这复制了屏幕上撕下的线。

才意识到问题出在哪里花了我一段时间。现在,我不知道如何解决它。理想情况下,我想将 curscr 复制到 savewin 而不会被扯掉。有任何想法吗?

4

1 回答 1

0

curscr是物理显示屏的内容,所以自然也包括了撕掉的线。

您可以改为使用stdscr,但不会。您也可以尝试使用copywin而不是overwrite- 它会给您更多控制权,包括让您在源窗口的不同位置开始复制。

于 2010-03-14T10:49:15.053 回答