📄 wtcjbs.c
字号:
#include <curses.h>
#include <stdio.h>
#define StartX 3
#define StartY 3
int nowwin;
WINDOW *win[4],*curwin;
void initial();
void viewwindow(int nowwin);
void dowindow(int nowwin);
main()
{
int x=StartX;
int y=StartY;
int i,ch;
/*** init stdscr window ***/
initial();
curs_set(0);
/* box(stdscr,'|','-'); */
wborder(stdscr,'|','|','-','-',ACS_ULCORNER,ACS_URCORNER,ACS_LLCORNER,ACS_LRCORNER);
attron(A_REVERSE);
mvaddstr(0,COLS/2-20," ENTRUST AND REAL_DONE COUNT per day");
attroff(A_REVERSE);
move(1,COLS-30);
printw("MAX LINES:%d MAX COLS:%d",LINES,COLS);
mvaddstr(4,5,"This prog is used to list quantities for entrust and real_done per day");
mvaddstr(6,5,"1 - The first quarter");
mvaddstr(7,5,"2 - The second quarter");
mvaddstr(8,5,"3 - The third quarter");
mvaddstr(9,5,"4 - The fourth quarter");
mvaddstr(10,5,"0 - Return to Main window");
refresh();
/*** create four window ***/
win[0]=newwin(LINES-4,COLS-4,2,2);
box(win[0],ACS_VLINE,ACS_HLINE);
win[1]=newwin(LINES-4,COLS-4,2,2);
box(win[1],ACS_VLINE,ACS_HLINE);
win[2]=newwin(LINES-4,COLS-4,2,2);
box(win[2],ACS_VLINE,ACS_HLINE);
win[3]=newwin(LINES-4,COLS-4,2,2);
box(win[3],ACS_VLINE,ACS_HLINE);
/*** difine main body for circle ***/
while((ch=getch())!=27)
{
switch(ch)
{
case 48:
curwin=stdscr;
getyx(curwin,y,x);
touchwin(stdscr);
refresh();
break;
case 49:
nowwin=0;
viewwindow(nowwin);
dowindow(nowwin);
break;
case 50:
nowwin=1;
viewwindow(nowwin);
dowindow(nowwin);
break;
case 51:
nowwin=2;
viewwindow(nowwin);
dowindow(nowwin);
break;
case 52:
nowwin=3;
viewwindow(nowwin);
dowindow(nowwin);
break;
case KEY_UP:
--y;
break;
case KEY_DOWN:
++y;
break;
case KEY_RIGHT:
++x;
break;
case KEY_LEFT:
--x;
break;
case '\r':
++y;
x=0;
break;
default:
break;
}
wmove(curwin,y,x);
wrefresh(curwin);
refresh();
}
refresh();
delwin(win[0]);
delwin(win[1]);
delwin(win[2]);
delwin(win[3]);
endwin();
}
void viewwindow(int i)
{
int x,y;
nowwin=i;
curwin=win[nowwin];
touchwin(curwin);
getyx(curwin,y,x);
mvwprintw(curwin,0,5,"window %d",i+1);
mvwprintw(curwin,1,COLS/2-15,"quarter %d: %d -- %d month",i+1,i*3+1,i*3+3);
wrefresh(curwin);
}
void dowindow(int i)
{
curwin=win[i];
for(i=StartY;i<=COLS-10;i++)
{
mvwaddch(curwin,LINES/2-2,i,ACS_HLINE);
}
mvwaddch(curwin,LINES/2-2,i,ACS_RARROW);
mvwaddstr(curwin,LINES/2-1,COLS-15,"x date");
mvwprintw(curwin,StartY-1,StartY+2," y weituo");
mvwaddch(curwin,StartY-1,StartY+2,ACS_UARROW);
for(i=StartY;i<=LINES-8;i++)
{
mvwaddch(curwin,i,StartY+2,ACS_VLINE);
}
}
/*** init stdscr ***/
void initial()
{
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,FALSE);
keypad(stdscr,TRUE);
refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -