#include
#include
#include
#include
void main()
{ union REGS r;
clrscr();
r.x.ax= 0;
int86(0x33,&r,&r);
if(r.x.ax==0)
{
printf("No Mouse Available.....");
getch();
exit(1);
}
r.x.ax=1;//place 01 in AX register
int86(0x33,&r,&r);//showing the mouse pointer
printf(“press any key to exit…”);
getch();
}
تابع مفيد ديگري براي كار با ماوس تابع 02 از وقفه 33hex ميباشد. اين تابع نشانگر ماوس را پنهان مي كند. فرض كنيد مي خواهيد مانند برنامه Paint وقتي ماوس را ميكشيد يك خط هم با آن كشيده شود. در اين حالت اگر نشانگر ماوس ديده شود بعضي از نقاط خط پاك خواهند شد و بهتر است كه در اين مواقع نشانگر را پنهان كنيم. بعدا مثال كاملتري برايتان خواهم نوشت. براي كار با ماوس ما بايد بدانيم كه نشانگر اكنون د ركجاي صفحه مي باشد يعني مختصات (x,y) آن را بدست آوريم. براي اين كار از تابع شماره 03 استفاده مي كنيم. كه پس از فراخواني تابع ثبات CX حاوي مختصات افقي(x) و DX حاوي مختصات عمودي نشانگر خواهد بود. كار مهم ديگر تشخيص كليدهاي فشرده شده ماوس است. تابع 03 همچنين تعيين مي كند كه كدام كليد از ماوس فشرده شده است. اين كليدها را ثبات BX تعيين ميكند. فقط همين كافي است كه بدانيد پس از فراخواني وقفه اگر BX برابر با 00000001)Hex (باشد كليد چپ ماوس فشار داده شده است. راجع به فشار دادن كليدهاي ديگر اگر علاقه مند بوديد به من ايميل بزنيد تا نحوه تشخيص آنها را هم بنويسم. مثال زير نحوه كار را مشخص مي كند:< /P>< /P>
#include
#include
#include
#include
void main() {
union REGS i,o;
clrscr();
i.x.ax=0;
int86(0x33,&i,&o);
if(o.x.ax==0) {
printf("No Mouse Available...");
exit(1);
}
i.x.ax=1;
int86(0x33,&i,&o);
gotoxy(25,23);
printf("Press any key to exit...");
while(!kbhit())
{
i.x.ax=3;
int86(0x33,&i,&o);
gotoxy(2,2);
printf("x->co-ordinate=(%d) \n y->co-ordinate=(%d) ",o.x.cx,o.x.dx);
if(o.x.bx==0x01) printf(“Right button of mouse pressed.”); }
i.x.ax=2; int86(0x33,&i,&o);
}
هیچ نظری موجود نیست:
ارسال یک نظر