Добрый день, еще один вопрос ...
Вот отрывок функций для работы с мышью, где сама работа осуществляется через значения bo(0-nothing happen,1-left click,2-right 0click,3-right+left click),co(x coordinate),ro(y coordinate)
int mouse_init(void)
{
int result;
asm {
mov ax,00h;
int 33h;
mov result,ax;
}
return(result);
}
void mouse_show(void)
{
asm {
mov ax,01h;
int 33h;
}
}
void mouse_hide(void)
{
asm {
mov ax,02h;
int 33h;
}
}
unsigned int co,ro,bo;
/* This fuction is to return the
mouse information
bo = mouse button
ro = the y position of the mouse cursor
co = the x position of the mouse cursor */
void mouse_info(void)
{
asm {
mov ax,03h;
int 33h;
mov bo,bx;
mov ro,dx;
mov co,cx;
}
}
И вот отрывок который выдаёт в текстовом режиме БС++ 3.1 псевдографикой окошко вида : Вы действительно хотите удалить данную запись ? (Да/Нет)
char*Del_Race[]={
{"╔══════════════════════════════╗\n"},
{"║ Вы действительно хотите ║\n"},
{"║ удалить найденый авиарейс ? ║\n"},
{"╠══════════════════════════════╣\n"},
{"║ ┌───────────┐ ┌───────────┐ ║\n"},
{"║ │ Yes │ │ No │ ║\n"},
{"║ └───────────┘ └───────────┘ ║\n"},
{"╚══════════════════════════════╝\n"}
};
for(int i=0;i<8;i++)
{
gotoxy(36,19+i);
cout<<Del_Race[ i];
}
mouse_init();
mouse_show();
int c;
while(u==1)
{
mouse_info();
if(bo==1 && co>=300 && co<=395 && ro>=178 && ro<=195 || getch()==13) // Acce
pt
{
//Delete
}
if(bo==1 && co>=418 && co<=518 && ro>=177 && ro<=192 || getch()==27) // Canc
el
{
// Cancel delete
}
}
В условных операторах отслеживаются клики в областях кнопок Да/Нет и дополнительно добавлена обработка на Ентер(Да) и Ескейп(Нет). Проблема в том, что при такой постановке getch() обработка на клик мыши не работает. Если гетч закоментировать, то прекрасно работает. Можно как-то поправить?