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ł ;-]