#include WINDOW *create_newwin(int height, int width, int starty, int startx) { WINDOW *local_win; local_win = newwin(height, width, starty, startx); box(local_win, 0 , 0); /* 0, 0 gives default characters * for the vertical and horizontal * lines */ wrefresh(local_win); /* Show that box */ return local_win; } int main() { /* A_NORMAL Normal display (no highlight) A_STANDOUT Best highlighting mode of the terminal. A_UNDERLINE Underlining A_REVERSE Reverse video A_BLINK Blinking A_DIM Half bright A_BOLD Extra bright or bold A_PROTECT Protected mode A_INVIS Invisible or blank mode A_ALTCHARSET Alternate character set A_CHARTEXT Bit-mask to extract a character COLOR_PAIR(n) Color-pair number n */ int end, ch; int row,col; char msg[256]; WINDOW *w1; initscr(); getmaxyx(stdscr,row,col); raw(); keypad(stdscr, TRUE); noecho(); mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col); move(0,0); //http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/windows.html w1 = create_newwin(row/2, col/2, row/4, col/4); while (!end) { ch=getch(); switch(ch) { case KEY_F(2): attrset(A_NORMAL); printw("F2 key\n"); break; case 'q': end=1; break; case 'b': mvwchgat(w1,1,0,-1, A_REVERSE, 0, NULL); break; default: sprintf(msg, "%c key\n", ch); wattrset(w1,A_BOLD | A_UNDERLINE); wprintw(w1, msg); } refresh(); } endwin(); return 0; }