Ожидание выбора кнопки подменю


while(1){

if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){

x=ms.hor_pos;

y=ms.ver_pos;

if(x>58&&x<83&&y>295&&y<312)

kn_add=161;

if(x>83&&x<108&&y>295&&y<312)

kn_add=162;

if(x>58&&x<83&&y>312&&y<330)

kn_add=163;

if(x>83&&x<108&&y>312&&y<330)

kn_add=164;

break;

}

}

kn=16;

}

if(x>8&&x<58&&y>330&&y<365)

kn=17;

if(x>58&&x<108&&y>330&&y<365)

kn=18;

if(x>8&&x<58&&y>365&&y<400)

kn=19;

if(x>58&&x<108&&y>365&&y<400)

kn=20;

if(x>108&&x<175&&y>435&&y<470)

kn=21;

if(x>175&&x<242&&y>435&&y<470)

kn=22;

if(x>242&&x<309&&y>435&&y<470)

kn=23;

if(x>309&&x<376&&y>435&&y<470)

kn=24;

if(x>20&&x<50&&y>14&&y<43)

kn=25;

/* Действия, выполняемые выбранной ранее кнопкой */

switch(kn){

//Резистор

case 1:

cursor_off();

//активизация кнопки

setfillstyle(1,4);

floodfill(15,65,15);

floodfill(25,65,15);

cursor_on();

//ожидание ввода первой координаты рисуемого

//элемента

while(1){

if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){

x1=ms.hor_pos;

y1=ms.ver_pos;

break;

}

}

cursor_off();

//считывание каждого пикселя области экрана,

//предназначенного для указателя

for(i=0;i<=6;i++)

for(j=0;j<=6;j++)

a[i][j]=getpixel(x1-3+j,y1-3+i);

//рисунок указателя

setcolor(8);

circle(x1,y1,3);

setfillstyle(1,14);

floodfill(x1,y1,8);

setcolor(15);

cursor_on();

//ожидание ввода второй координаты рисуемого элемента

while(1){

if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){

x2=ms.hor_pos;

y2=ms.ver_pos;

break;

}

}

cursor_off();

//очистка области экрана, занятой указателем

for(i=0;i<=6;i++)

for(j=0;j<=6;j++)

putpixel(x1-3+j,y1-3+i,a[i][j]);

if(x1>108&&x1<630&&x2>108&&x2<630)

if(y1>50&&y1<435&&y2>50&&y2<435)

//вызов функции, рисующей резистор

rezistor(x1,y1,x2,y2);

//придание кнопке обычного цвета

setfillstyle(1,7);

floodfill(15,65,15);

floodfill(25,65,15);

cursor_on();

kn=0;//обнуляю кнопку

break;

case 2:

cursor_off();

setfillstyle(1,4);

floodfill(90,65,15);

cursor_on();

while(1){

if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){

x1=ms.hor_pos;

y1=ms.ver_pos;

break;

}

}

cursor_off();

for(i=0;i<=6;i++)

for(j=0;j<=6;j++)

a[i][j]=getpixel(x1-3+j,y1-3+i);

setcolor(8);

circle(x1,y1,3);

setfillstyle(1,14);

floodfill(x1,y1,8);

setcolor(15);

cursor_on();

while(1){

if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){

x2=ms.hor_pos;

y2=ms.ver_pos;

break;

}

}

cursor_off();

setfillstyle(1,7);

floodfill(90,65,15);

for(i=0;i<=6;i++)

for(j=0;j<=6;j++)

putpixel(x1-3+j,y1-3+i,a[i][j]);

if(x1>108&&x1<630&&x2>108&&x2<630)

if(y1>50&&y1<435&&y2>50&&y2<435)