我在标准屏幕上创建了 3 个窗口,具有屏幕宽度列和一行高度:
WINDOW* pWindow = newwin(0, COLS - 1, windowNr, 0); // windowNr 0 - 2
通常呈现为连续窗口:
----------------------------0 Window----------------------------
----------------------------1 Window----------------------------
----------------------------2 Window----------------------------
我的问题是在最后一个创建的窗口下我想要一个我创建的垫:
WINDOW* pPad = newpad(LINES - 3, COLS - 1); // 3 because of the three pWindows
但pad
最重要的是呈现pWindows
:
----------------------------0 Pad----------------------------
----------------------------0 Pad----------------------------
----------------------------0 Pad----------------------------
如何将焊盘放置在输出的最后一个窗口下方:
----------------------------0 Window----------------------------
----------------------------1 Window----------------------------
----------------------------2 Window----------------------------
------------------------------0 Pad-----------------------------
------------------------------0 Pad-----------------------------
------------------------------0 Pad-----------------------------
不幸的newpad
是,没有(y,x)坐标newwin
。为了简单地用调试内容填充焊盘,我这样做:
werase(pPad); // Clear window, https://invisible-island.net/ncurses/man/curs_clear.3x.html
wmove(pPad, 0, 0); // Moves cursor in pad to y,x
for(int c = 0; c < 40; c++){
string s = to_string(c) + ".\n";
wprintw(pPad, s.c_str());
}
prefresh(pPad, 0, 0, 0, 0, maxRows, maxCols);
我还在 中添加了不同的值prefresh
,它的视口滚动或者更确切地说刷新可以完美地工作,如文档中所述。