gpt4 book ai didi

c++ - ncurses newwin() 和 mvwin() 未按预期运行

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:22 25 4
gpt4 key购买 nike

我正在使用 ncurses 在 C++ 中开发应用程序,但 newwin() 和 mvwin() 函数都没有按预期工作。每当我给出这些函数参数值中的任何一个以尝试创建一个与初始终端窗口大小不同的新窗口时,似乎什么都没有发生。例如,以下代码应在位置 (10,10) 处创建一个高度为 50、宽度为 10 的新窗口。这一切似乎都没有发生:

#include <ncurses.h>
#include <iostream>

using namespace std;

int main(){
initscr();

WINDOW * win = newwin(50,10,10,10);
wrefresh(win);

getch();
endwin();
return 0;
}

从我阅读的文档来看,如果传递给它的任何参数是无效值,似乎将使用默认大小和位置创建一个窗口,但据我所知,所有这些都是有效值。 newwin() 是否不像我想的那样工作?提前谢谢你

最佳答案

问题问的是mvwin , 但这不会创建窗口,也没有在有问题的调用问题中的示例。

对于 newwin ,零参数被特殊处理,而不是“无效值”。该问题显示了一个明显有效的调用(并且在快速检查中,它按预期运行)。

但是,OP 可能对没有输出感到困惑。这是因为程序创建了一个空窗口,然后从标准屏幕读取。

这个修改后的程序通过在新窗口上绘制一个框然后从该窗口读取来产生输出(防止与 getch 关联的 wrefresh 在新窗口上绘制) :

#include <ncurses.h>
#include <iostream>

using namespace std;

int main(){
initscr();

WINDOW * win = newwin(50,10,10,10);
box(win,0,0);
wrefresh(win);

wgetch(win);
endwin();
return 0;
}

关于c++ - ncurses newwin() 和 mvwin() 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42842545/

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