Я хочу напечатать текст посередине экрана (мое окно) со строкой, и когда я выбираю опцию, я хочу, чтобы это окно исчезало с помощью 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, choices[i]);
и это сработало, но есть ли более общий способ сделать это?