gpt4 book ai didi

c - 如何在屏幕中间打印文本并使框窗口消失 Ncurses

转载 作者:行者123 更新时间:2023-11-30 16:23:47 25 4
gpt4 key购买 nike

我想在屏幕(我的窗口)中间一行一行地打印文本,当我选择一个选项时,我想使用 ncurses.h 使该窗口消失..

int height = 6;
int width = 24;

WINDOW* menuwin = newwin(height, width, (LINES - height)/2, (COLS - width)/2);
box(menuwin, 0, 0);
refresh();
wrefresh(menuwin);

keypad(menuwin, TRUE);

char* choices[3] = {"something", "something", "something"};
int choice;
int highlight = 0;

while(TRUE)
{
for(int i = 0; i < 3; ++i)
{
if(i == highlight)
{
wattron(menuwin, A_REVERSE);
}
mvwprintw(menuwin, i + 1, 1, choices[i]);
wattroff(menuwin, A_REVERSE);
}
choice = wgetch(menuwin);
switch(choice)
{
case KEY_UP:
highlight--;
if(highlight == -1) highlight = 2;
break;
case KEY_DOWN:
highlight++;
if(highlight == 3) highlight = 0;
break;
default:
break;
}

if(choice == 10)
{
wrefresh(menuwin);
delwin(menuwin);
refresh();
getch();
}
}

好的,那么这是做什么的,我在屏幕中间创建一个菜单,但框中的文本位于左上角,我希望它位于该窗口的中间,当我选择说时选项 1 我希望该窗口被“隐藏”或者其他什么,这样我就可以在任何时候让它可见,只有 Ncurses 和 C。

更新:我通过将 mvwprintw(menuwin, i + 1, 1, Choices[i]); 更改为 mvwprintw(menuwin, i + 1, 6, choice[i]); 并且它有效,但是有更通用的方法吗?

最佳答案

如果您对 stdscr 进行更改并刷新,它将遮盖其他窗口(直到您修改/刷新这些窗口)。

关于c - 如何在屏幕中间打印文本并使框窗口消失 Ncurses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53895846/

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