Ncurses:刷新非重叠窗口将刷新整个屏幕。如何避免这种情况?
我正在破解一个使用5个窗口的ncurses应用程序:Ncurses:刷新非重叠窗口将刷新整个屏幕。如何避免这种情况?,c,unix,ncurses,C,Unix,Ncurses,我正在破解一个使用5个窗口的ncurses应用程序: 状态栏窗口-1 X列位于屏幕底部的右侧 标题栏窗口-屏幕顶部有1个COLS 3个内容窗口-行-2个列,位于状态栏和标题栏之间 请注意,有3个内容窗口,它们彼此完全重叠。我正在手动决定重新绘制哪个。标题栏和状态栏窗口不与任何其他窗口重叠 一个用例是用户使用其中一个内容窗口中的菜单选择要上载到网络守护进程的文件。选择文件后,状态栏将充当原始进度栏,绘制一些散列以指示文件已上载的距离 这归结起来就是使用: wclear(地位) mvwprin
- 状态栏窗口-1 X列位于屏幕底部的右侧
- 标题栏窗口-屏幕顶部有1个COLS
- 3个内容窗口-行-2个列,位于状态栏和标题栏之间
- wclear(地位)李>
- mvwprintw(状态,…)李>
- (身份);李>
我的ncurses实现是OpenBSD的实现。来自wclear手册页: clear和wclear例程类似于erase和werase,但它们也 调用clearok,以便在下次调用时完全清除屏幕 重新粉刷那扇窗户,从头开始重新粉刷
你能写一个很短的独立程序来演示这种行为吗?你在哪个终端运行这个?请注意,某些终端可能功能有限,因此需要重新绘制整个屏幕,而其他终端可能没有。这样做,我看到了违规者。wclear()似乎会导致整个屏幕更新!没有它,我是自由的。为什么会这样?