我写的一个C语言程序,有个毛病,不是经常发生,只是有时候,但我怎么能也能不好。当我在按钮1(区域)单击一下后,
又去单击按钮2后,触摸屏上的鼠标确在按钮1(区域)上单击一下,然后在跑到按钮2的位置上,但它取没执行单击。
这是怎么回事,我贴出来一个例子让大家看看。你们谁有大型程序中的控制鼠标的例子贴上来看看。
#include <stdlib.h>
#include <stdio.h>
#include "dos.h"
#include<graphics.h>
#include "mymouse.c"
sub6()
{
int MouseX,MouseY;
int sum1;
int per1;
int sign=4;
int sub6wait=1; /*循环开关*/
MouseSetY(0,479); /*鼠标设置区域一定要写,否则在触摸屏上鼠标能显示的区域是不对的*/
MouseSetX(0,639);
MouseOn(MouseX,MouseY);
MouseMath();
while(sub6wait==1)
{
if(MouseStatus()==2)
{
MouseX=MouseGetX();
MouseY=MouseGetY();
}
/***************************************** 按钮1 *********************************************/
if((LeftPress()==1)&&((60<MouseX && MouseX<180)&&(37< MouseY&& 78> MouseY ))) /*按1*/
{
MouseOff();
show_bmp("sub6\\pre_1.bmp",60,37);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
while(LeftPress()==1);
if(LeftPress()==0)
{
MouseOff();
show_bmp("sub6\\1.bmp",60,37);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
}
}
/***************************************** 按钮2 *********************************************/
if((LeftPress()==1)&&((60<MouseX && MouseX<180)&&(94< MouseY&& 134> MouseY ))) /*按2*/
{
MouseOff();
show_bmp("sub6\\pre_2.bmp",60,94);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
while(LeftPress()==1);
if(LeftPress()==0)
{
MouseOff();
show_bmp("sub6\\2.bmp",60,94);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
}
}
/***************************************** 按钮3(退出) *********************************************/
if((LeftPress()==1)&&((60<MouseX && MouseX<180)&&(430< MouseY&& 471> MouseY ))) /*按3*/
{
MouseOff();
show_bmp("sub6\\pre_8.bmp",60,430);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
while(LeftPress()==1);
if(LeftPress()==0)
{
MouseOff();
show_bmp("sub6\\8.bmp",60,430);
MouseX=MouseGetX();
MouseY=MouseGetY();
MouseOn(MouseX,MouseY);
}
sub6wait=0;
}
} /* while */
} /* sub2 */