box(items[0],ACS_VLINE,ACS_HLINE);
items[1]=subwin(items[0],1,17,2,start_cols+1);
wprintw(items[1],"子项D1");
items[2]=subwin(items[0],1,17,3,start_cols+1);
wprintw(items[2],"子项D2");
items[3]=subwin(items[0],1,17,4,start_cols+1);
wprintw(items[3],"子项D3");
items[4]=subwin(items[0],1,17,5,start_cols+1);
wprintw(items[4],"子项D4");
break;
default: break;
}
wbkgd(items[1],COLOR_PAIR(1));
wrefresh(items[0]);
return items;
}
view_menu(WINDOW **items,/*int itemNum,*/int start_cols,int itemNo)
{
int select=0;/*适应求余算法,0--itemNum-1,对应1--itemNum*/
int Key;
int itemNum;
itemNo=itemNo-1;/*适应求余算法,0--3对应1--4*/
wrefresh(items[0]);
A1:
itemNum=item_num(itemNo+1);
while(1) {
Key=getch();
if(Key==KEY_DOWN || Key==KEY_UP) {
wbkgd(items[select+1],COLOR_PAIR(2));
wnoutrefresh(items[select+1]);
if (Key==KEY_DOWN)
select=(select+1) % itemNum;
else
select=(select+itemNum-1) % itemNum;
wbkgd(items[select+1],COLOR_PAIR(1));
wnoutrefresh(items[select+1]);/*select+1为第几项目1/2/3../itemNum*/
doupdate();
}
else {
if (Key==KEY_LEFT || Key==KEY_RIGHT) {
Del_menu(items,itemNum+1);
touchwin(stdscr);
refresh();
if (Key==KEY_RIGHT)
if (start_cols<63){
itemNo=(itemNo+1) % 4; /*4: 一共4个菜单*/
start_cols=start_cols+20; /*20: 菜单之间原点间隔数*/
}
else{
itemNo=0;
start_cols=3;
}
else
if (start_cols>;3) {
itemNo=(itemNo+4-1) % 4;
start_cols=start_cols-20;
}
else {
itemNo=3;
start_cols=63;
}
items=Draw_menu(start_cols,itemNo+1);/*itemNo+1为菜单号1\2\3\4*/
select=0;
goto A1;
/*return view_menu(items,4,start_cols); */
}
if (Key==ESC) return -1;
else
if (Key==ENTER){
return 1; /* */
}
}
}
}
void Del_menu(WINDOW **items,int itemNum)
{
int i;
for (i=0;i<itemNum;i++)
{
delwin(items);
free(items);
}
}
item_num(int itemNo)/*根据菜单号找出对应项目数*/
{
switch(itemNo) {
case 1: return ITEM_NUM_1;
case 2: return ITEM_NUM_2;
case 3: return ITEM_NUM_3;
case 4: return ITEM_NUM_4;
}
}
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 菜单 语言 items menuhead start_cols WINDOW subwin |
注册
个人空间
