我正在尝试使用ncurses在C语言中编写一个简单的聊天应用程序,我之前只了解PHP。(是的,我知道。谢谢。我会牢记这个建议,请放下枪支。)
我尝试创建两个窗口,一个用于输入,一个用于频道文本,如下所示:
为了将输入内容放在第二个窗口中,该窗口应占据终端底部的单独一列,而输出则出现在填充终端其余空间的第一个窗口中。 输出似乎正确地填充顶部窗口(通道),并且输入光标在正确位置闪烁,但更改其大小不会产生可预测的结果,并且键入的输入似乎根本没有进入输入窗口。 可以在此处找到完整的源代码:http://pastebin.com/X8apHUgh。总之,我想知道为什么输入行为出现意外情况,并且为什么绘制“通道”窗口会产生奇怪的结果。
我尝试创建两个窗口,一个用于输入,一个用于频道文本,如下所示:
int termwidth = getmaxy(stdscr);
int termheight = getmaxx(stdscr);
WINDOW *channel = newwin(termwidth, termheight - 1, 0, 0);
scrollok(channel, TRUE);
WINDOW *input = newwin(termwidth, 1, termheight + 1, 0);
scrollok(input, TRUE);
然后将光标位置设置为输入框:
wmove(input, 0, 0);
为了将输入内容放在第二个窗口中,该窗口应占据终端底部的单独一列,而输出则出现在填充终端其余空间的第一个窗口中。 输出似乎正确地填充顶部窗口(通道),并且输入光标在正确位置闪烁,但更改其大小不会产生可预测的结果,并且键入的输入似乎根本没有进入输入窗口。 可以在此处找到完整的源代码:http://pastebin.com/X8apHUgh。总之,我想知道为什么输入行为出现意外情况,并且为什么绘制“通道”窗口会产生奇怪的结果。