{ tree *list;list=p; // то выводим на табло о текущих действиях
while(list->up!=null) list=list->up;
DelUr(list);
setfillstyle(3,7);
bar(130,150,520,210);
setcolor(13);
outtextxy(249,170,"Выполняется пункт:");
l2=strlen(p->up->text);
if(p->up->up!=null){
outtextxy(170,190,p->up->up->text);
l1=strlen(p->up->up->text);
outtextxy(176+l1*7,190," :");
}
else outtextxy(176+l1*8+l2*8,190," :");
outtextxy(176+l1*10,190,p->up->text);
outtextxy(176+l1*10+l2*10,190,p->text);
getch();
setfillstyle(10,fon);
bar(130,150,520,210);
return(1);
}
else return(0);
}
Menu2.
#include "menu1.cpp"
//-----------Программа---------------------------------------
void main()
{ int gd, gm, error; // Инициализация графики
detectgraph(&gd,&gm);initgraph(&gd, &gm, "d:\\borlandc\\bgi");
error= graphresult();
if (error!= grOk) {
printf("Ошибка инициализации графики");
getch(); }
tree *p,*list;
p=makemenu();
Window(); // Создание меню
list=p;p=p->next;
while(p!=list) // Вывод первого уровня меню
{ p->x=p->pred->x+s;p->y=p->pred->y;
No(p);
p=p->next;
}
No(p);
int c,flag1=1,flag2=0;
//------------ Обработка нажатия клавиши ----------------
while (flag1)
{ c=getch();
switch (c) {
case 80: if(flag2==1) //Указатель вниз
{ No(p);
if(p->up==null){p=p ->doun;BuildUr(p);}
else p=p->next;
Yes(p);} break;
case 77: if(flag2==1) // Указатель вправо
{ No(p);
if(p->up==null) p=p->next;
else { if(p->up->up==null)
{ while(p->up!=null) p=p->up;
DelUr(p);p=p->next;
p=p->doun;
BuildUr(p);
}
}
Yes(p);} break;
case 72:if(flag2==1) // Указатель вверх
{ No(p);
if(p->up!=null) p=p->pred;Yes(p);}
break;
case 75:if(flag2==1) //Указатель влево
{ No(p);
if(p->up==null) p=p->pred;
else { if(p->up->up==null)
{ while(p->up!=null) p=p->up;
DelUr(p);p=p->pred;
p=p->doun;
BuildUr(p);
}
}
Yes(p);} break;
case 13:if(flag2==1) //Обработка клавиши Enter
{ No(p);
if (Letter(p))p=list;
else
{ p=p->doun; BuildUr(p);}
Yes(p);}
break;
case 66: if(flag2==1) // Обработка клавиши F8
{ while(p->up!=null) p=p->up;
DelUr(p);
Yes(p);
setfillstyle(2,8);
bar(115,150,550,250);
setcolor(15); //Вывод содержимого "Помощь"
outtextxy(250,170," Опции меню:");
outtextxy(120,185,"Указатели вверх,вниз,влево,вправо-перемещение");
outtextxy(130,200," Enter - выполнить пункт или вызвать подменю");
outtextxy(130,215," Esc - выход из данного подменю в главное");
getch();
setfillstyle(10,fon);
bar(115,150,550,300);}
break;
case 27: if(flag2==1) // Обработка клавиши Esc
{ if(p->up!=null)
{ No(p);
p=p->up;
DelUr(p);Yes(p);}} break;
case 67: flag1=0;break; //Обработка клавиш F9
case 68: flag2=1;Yes(p);break; //Обработка клавиши F10
}
}
closegraph();
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.