9
我正在尝试在curses窗口中写入内容,但它似乎也写在边框上。我如何修复下面的代码?在窗口内打印,而不是在边框
win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
wrefresh(win_self);
wprintw(win_self, "foobar");
我正在尝试在curses窗口中写入内容,但它似乎也写在边框上。我如何修复下面的代码?在窗口内打印,而不是在边框
win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
wrefresh(win_self);
wprintw(win_self, "foobar");
在诅咒,通过box()
产生的边界是内部边界。据我所知,没有办法简单地说“不要覆盖我的边界”。
不过,也有我能想到的,现在三种解决方案:
move()
)
只是为了更清楚更小的两行/列:box()
功能不添加属性“窗口有明显的边界”的窗口,它只是在窗口周围打印边框字符。
您的位置:
我想说的最简单的方法是创建窗口内的一个窗口边框并在该窗口中打印。
win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
derwin_self = derwin(win_self, LINES/2 - 2, COLS - 2, 0, 0);
wprintw(derwin_self, "foobar");
我选择第三种解决方案作为临时黑客。现在看起来黑客是'生产代码'。 – Alexandru 2011-04-22 19:28:16
是的,我认为这是最好的解决方案。 – Philip 2011-04-22 20:04:54
第三个是一个好主意,我也是这样实现的。但是现在我遇到了多个重叠窗口和面板的问题。我将外部(边框)窗口分配给面板,但是当我关闭(隐藏)一个窗口时,下面的另一个窗口不会刷新,窗口不会被分配给下面的面板...是否有解决方案呢?也许还有其他面板 – aurora 2013-02-08 22:25:33