PDA

View Full Version : mouse



AsgharDasTala
شنبه 21 آذر 1383, 23:20 عصر
برای طراحی نرم افزار ساده ای شبیه به Auto cad نیاز به حرکت موس در صفحه و طراحی منوی save در منوی file دارم. لطفا راهنمایی کنید و یا سایتی را که می توانم کدهایشان (object) را بدست آورم معرفی کنید. :oops:

solmaz daryani
دوشنبه 30 آذر 1383, 16:42 عصر
ببین اینو شاید به دردت بخو ره واسه حرکت mouse
#include<iostream.h>
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<bios.h>

#define mouse 0x33

class graphic
{
private:
union REGS regs;
int x,y;
public:
graphic();
~graphic();
void dis();//disable mouse pointer
void en(); //enable mouse pointer
int get_position(int &a,int &b);// a & b are position of mouse pointer
};
//**************************************
graphic::graphic()
{
/*x=y=0;
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();

if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
} */
}
/************************************************** */
int graphic::get_position(int &a,int &b)
{
regs.x.ax=0x3;
int86(mouse, &regs, &regs);
if(regs.x.dx<=140||regs.x.dx>=340)
{
y=(regs.x.cx-80)/40+1;
do{
regs.x.ax=0x6;
int86(mouse, &regs, &regs);
}
while( regs.x.bx&&1==0);
if(regs.x.dx<=140)
y=13-y;
if(regs.x.dx>=340)
y+=12;
x=(regs.x.dx-100)/160+1;
}
a=x;
b=y;
if(regs.x.bx&1)
return 1;
return 0;
}
//***************************************
void graphic::dis()
{
regs.x.ax = 0x0002;
int86(mouse, &regs, &regs);
}
//******************************************
void graphic::en()
{
asm{
mov ax,1
int 33h
mov ax,08h
mov cx,0
mov dx,195
int 33h
mov ax,07h
mov cx,0
mov dx,600
int 33h
}
}
//************************************************** *********
graphic::~graphic()
{
/*setcolor(0);
for(int i=320,j=320;i<640;i++,j--)
{
line(i,0,i,480);
line(j,0,j,480);
delay(5);
}
setcolor(4);
settextstyle(1,0,9);
outtextxy(90,155,"Good Bye");
delay(1000);
closegraph();*/
dis();
}
//****************************************

////////////////////////////////////////////
void main()
{
graphic g;
g.en();
getch();

}

AsgharDasTala
چهارشنبه 30 دی 1383, 21:23 عصر
متشکرم
حتما امتحانش میکنم و جوابش را برایت می فرستم
موفق باشی

AsgharDasTala
دوشنبه 05 بهمن 1383, 14:06 عصر
برنامه ی بسیار خوبی بود
اگر دوست دارید آدرس email خود را بدهید تا کامل شده ی آن را برایتان بفرستم
amirhosseinsharafy@yahoo.com

mdssoft
چهارشنبه 25 مهر 1386, 20:27 عصر
خوب چی میشد سورسش رو همین جا بزاری :اشتباه: