C++ Ncurses-空白窗口,在初始化我的窗口之前等待按下按钮

C++ Ncurses-空白窗口,在初始化我的窗口之前等待按下按钮,c++,ncurses,C++,Ncurses,我目前正在使用ncurses试图制作一个游戏。我试图强制用户按键盘上的ENTER键启动,但似乎遇到了一些问题。当我为选项创建一个开关盒时,它不会显示我的闪屏窗口,直到我按下一个按钮。在不实现任何类型的用户输入的情况下,它会在程序运行时立即显示初始屏幕 我已经包括了我的main和我的choices函数。totalInformation和gameTitle等功能只是图形,并不重要 我的主要意见是: int main(void) { initscr(); WINDOW * opening_screen

我目前正在使用ncurses试图制作一个游戏。我试图强制用户按键盘上的ENTER键启动,但似乎遇到了一些问题。当我为选项创建一个开关盒时,它不会显示我的闪屏窗口,直到我按下一个按钮。在不实现任何类型的用户输入的情况下,它会在程序运行时立即显示初始屏幕

我已经包括了我的main和我的choices函数。totalInformation和gameTitle等功能只是图形,并不重要

我的主要意见是:

int main(void)
{
initscr();
WINDOW * opening_screen;
keypad(stdscr, TRUE);
noecho();
cbreak();
raw();
start_color();

int height, width, start_y, start_x;
width = 80;
height = 40;
start_y = 0;
start_x = 0;
init_pair(1, COLOR_CYAN, COLOR_CYAN);

opening_screen = newwin(width, height, start_y, start_x);
refresh();

keypad(opening_screen, true);
choices(opening_screen);
wrefresh(opening_screen);

totalInformation();
wrefresh(opening_screen);

border('|', '|', '-', '-', '+', '+', '+', '+');
wrefresh(opening_screen);

attron(COLOR_PAIR(1));
gameTitle();
wrefresh(opening_screen);
attroff(COLOR_PAIR(1));

attron(A_BLINK);
mvaddstr(37, 24, "Press the ENTER key to continue");
attroff(A_BLINK);
wrefresh(opening_screen);

getch();
endwin();
}
我的选择功能:

void choices(WINDOW * screen)
{
int c = wgetch(screen);
switch(c)
{
    case 10:
        mvaddstr(3,3,"YOUVE PRESSED ENTER");
        break;
    default:
        break;
}
}

现在,当它运行时,程序会出现一个黑屏。按ENTER键后,我的全屏会弹出“YOUVE press ENTER”。

当curses启动时,屏幕最初是空白的,但程序必须刷新(重新绘制)屏幕才能到达该点。
wgetch
调用重新绘制(并在终端上清除)打开屏幕,然后
mvaddstr
调用更新主窗口
stdscr
。 最后,
getch
调用刷新(即重新绘制)主窗口
stdscr
,并遮挡其他窗口