gpt4 book ai didi

c - ncurses 中的窗口定位

转载 作者:太空狗 更新时间:2023-10-29 15:33:39 25 4
gpt4 key购买 nike

我正在尝试使用 ncurses 在 C 语言中编写一个简单的聊天应用程序,这两个应用程序都是我的新手,具有 PHP 背景。 (是的,我知道。谢谢。我会把这个建议牢记在心。请放下枪。)

我试图做的是创建两个窗口,一个用于输入,一个用于 channel 文本,如下所示:

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);

为了将键入的输入放在第二个窗口中,它应该占据终端底部的一个列,而输出出现在第一个窗口中,它填充了终端的其余空间。

输出显示正确填充顶部窗口( channel ),输入光标在正确位置闪烁,但更改其大小不会产生可预测的结果,并且键入的输入似乎不是完全进入输入窗口。

完整的源代码可在此处获得:http://pastebin.com/X8apHUgh

总而言之,我在问为什么输入行为异常,以及为什么绘制“ channel ”窗口会产生奇怪的结果。

最佳答案

哦,[咒骂/删除]!我是个低能儿。事实证明我的问题是双重的:

  1. 我无意中混淆了 X 和 Y 作业,并且
  2. 我还在函数中颠倒了宽度和高度参数。

这意味着定位工作正常,直到我对基本定位数学做出了某些假设。

我应该补充一点,这部分是因为我是根据 X/Y 位置构思终端定位,其中行/列是适当的范例。它们只是部分等效。

慢慢为自己鼓掌

关于c - ncurses 中的窗口定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com