Ncurses - zapamiętanie wyglądu okna
Pisząc przed chwilką program miałem taką sytuację, że miałem utworzone okno z różnymi napisami, następnie tworzyłem nowe okno i chciałem jakoś żeby można było usuwać to nowe okno ale żeby nic nie znikało z tego poprzedniego… No więc służy do tego funkcja touchwin
.
int touchwin(WINDOW *win);
Jeżeli chcemy “zatrzymać” okno główne, to wpisujemy stdscr
, jeżeli utworzone okno to oczywiście wpisujemy jego nazwę. Poniżej mały przykład.
#include <iostream>
#include <ncurses.h>
void okienko();
char znak, znaczek;
main()
{
initscr();
cbreak();
noecho();
border(0, 0, 0, 0, 0, 0, 0, 0);
mvprintw(3, 3, "To jest napis w oknie głównym.");
mvprintw(4, 3, "Naciśnij n aby utworzyć okno.");
mvprintw(5, 3, "Naciśnij q aby wyłączyć program.");
refresh();
znak = getch();
while(znak != 'q')
{
switch(znak)
{
case 'n':
okienko();
znak = getch();
break;
}
}
endwin();
return 0;
}
void okienko()
{
touchwin(stdscr);
WINDOW *okno;
okno = newwin(0, 0, 0, 0);
mvwprintw(okno, 5, 5, "To jest nowe okno.");
mvwprintw(okno, 6, 5, "Naciśnij q aby powrócić.");
wrefresh(okno);
char znaczek = wgetch(okno);
while(znaczek != 'q')
{
char znaczek = wgetch(okno);
}
delwin(okno);
refresh();
}
Ten mały programik chyba wszystko wyjaśnił ;-]