|
想写一个nano的面板,但是实际过程中出了问题。
我以同样的方式调用和定义menubar和messagebar,但是只有menubar可以显示,是怎么回事啊?
代码如下:
#include <ncurses.h>
#include <stdlib.h>
#define ENTER 10
#define ESCAPE 27
void init_curses()
{
initscr();
start_color();
init_pair(1,COLOR_GREEN,COLOR_BLACK);
init_pair(2,COLOR_WHITE,COLOR_GREEN);
curs_set(0);
noecho();
keypad(stdscr,TRUE);
}
void draw_menubar(WINDOW *menubar)
{
wbkgd(menubar,COLOR_PAIR(2));
wmove(menubar,0,10);
waddstr(menubar,"GUN nano");
}
void draw_messagebar(WINDOW *messagebar)
{
// int y,x;
// getmaxyx(stdscr,y,x);
wbkgd(messagebar,COLOR_PAIR(2));
wmove(messagebar,-3,1);
waddstr(messagebar,"Ctrl+x to Exit.");
}
int main()
{
int key,max_y,max_x;
WINDOW *menubar,*messagebar;
init_curses();
bkgd(COLOR_PAIR(1));
getmaxyx(stdscr,max_y,max_x);
menubar=subwin(stdscr,1,max_x,0,0);
messagebar=subwin(stdscr,1,max_x,max_y-3,1);
draw_menubar(menubar);
move(2,1);
printw("ESC quits.");
move(-3,1);
draw_messagebar(messagebar);
refresh();
if (key!=ESCAPE)
{
getch();
}
delwin(menubar);
delwin(messagebar);
endwin();
return 0;
} |
|