我有兴趣在终端中创建部分可见的ncurses窗口。当我使新的ncurses窗口与右边或底部终端窗口边界相交时,它可以正确显示。例如。工作代码:
newwin(15, 12, LINES - 7, COLS - 6);
但是,当我尝试使ncurses窗口与终端的左/上边界相交时,什么也没发生(ncurses窗口未绘制)。完整的例如无效代码:
#include <ncurses.h>
int main()
{
initscr();
cbreak();
refresh();
WINDOW* ncursesWindow = newwin(15, 12, -7, -6);
wborder(ncursesWindow, '*', '*', '*', '*', '*', '*', '*', '*');
wrefresh(ncursesWindow);
int command = getch();
endwin();
return 0;
}
问题是如何使最后的代码示例正常工作。
答案 0 :(得分:0)
这使窗口在屏幕外启动。 newwin
的{{3}}(请参阅manual page)和相关功能说
X / Open定义无错误条件。在此实现中
newwin
如果其任何一个起始坐标为负,或者行数或列数为负,将失败。
尽管X / Open“没有定义错误条件”,但这是大多数其他实现的行为方式(检查Solaris SVr4 curses,NetBSD)。 PDCurses似乎允许它。 Solaris xpg4 curses所做的事情有些奇怪,但是要知道您必须阅读source code。