hadisalahi2
یک شنبه 18 بهمن 1388, 10:51 صبح
با سلام به همگی دوستان
من با استفاده از تابع زیر ، منتظر فشردن کلیک ماوس می شوم.
void MOUSE::getmouse(int *button,int *x,int *y)
{
_AX=3;
geninterrupt(0x33);
*button=_BX;
*x=_CX;
*y=_DX;
}
به این صورت هم اون رو در برنامه خودم فراخوانی میکنم.
while(button!=1) M2.getmouse(&button,&x,&y);
حالا تکه کد زیر رو در نظر بگیرید:
D1.ButtonClick(65,5,"Squre");
ShowHelp(D1,"Please Select Top & Left Point");
Multi1.GetPoint(M1);
ShowHelp(D1,"Please Enter Len:");
Multi1.CenterLen();
Multi1.Squre();
در این چند خط دستور ، تابع Getpoint عمل دریافت کلیک ماوس رو انجام میده و اون رو در متغیر های X,Y قرار میده .
اما متاسفانه فکر کنم به دلیل حساسیت بالای ماوس در کلیک کردن ، بدون اینکه من نقطه خاصی رو در صفحه کلیک کرده باشم خط بعد از این تابع اجرا میشه و کاربر نمیتونه ، نقطه مورد نظر رو با ماوس انتخاب کنه.
به نظر شما این مشکل رو چطور میشه رفع کرد؟
در ضمن تابع Getpoint به صورت زیره:
void SIDE::GetPoint(MOUSE M1)
{
int x,y,button=0;
while(button!=1) M1.getmouse(button,&x,&y);
X=x;
Y=y;
}
من با استفاده از تابع زیر ، منتظر فشردن کلیک ماوس می شوم.
void MOUSE::getmouse(int *button,int *x,int *y)
{
_AX=3;
geninterrupt(0x33);
*button=_BX;
*x=_CX;
*y=_DX;
}
به این صورت هم اون رو در برنامه خودم فراخوانی میکنم.
while(button!=1) M2.getmouse(&button,&x,&y);
حالا تکه کد زیر رو در نظر بگیرید:
D1.ButtonClick(65,5,"Squre");
ShowHelp(D1,"Please Select Top & Left Point");
Multi1.GetPoint(M1);
ShowHelp(D1,"Please Enter Len:");
Multi1.CenterLen();
Multi1.Squre();
در این چند خط دستور ، تابع Getpoint عمل دریافت کلیک ماوس رو انجام میده و اون رو در متغیر های X,Y قرار میده .
اما متاسفانه فکر کنم به دلیل حساسیت بالای ماوس در کلیک کردن ، بدون اینکه من نقطه خاصی رو در صفحه کلیک کرده باشم خط بعد از این تابع اجرا میشه و کاربر نمیتونه ، نقطه مورد نظر رو با ماوس انتخاب کنه.
به نظر شما این مشکل رو چطور میشه رفع کرد؟
در ضمن تابع Getpoint به صورت زیره:
void SIDE::GetPoint(MOUSE M1)
{
int x,y,button=0;
while(button!=1) M1.getmouse(button,&x,&y);
X=x;
Y=y;
}