الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برمجة الماوس في ++c

مغلق
بدأه hussam_khataab في 16 أغسطس 2003 · 1 رد · 914 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اسلام عليكم ورحمة الله وبركاته

شباب الكود التالي عبارة عن كود لبرمجة مؤشر الماوس في بيئة الدوس

لمصرف البورلاند ++c :

#include

#include

#include

#include

#include

#include

const int FALSE=0;

const int TRUE=1;

const int LEFT=0;

const int RIGHT=1;

const int EITHER=2;

const int RESET=0;

const int SHOW=1;

const int HIDE=2;

const int GET_STATUS=3;

const int MOVE=4;

const int PRESSED=5;

const int RELEASED=6;

const int SIZE=4;

class mouse

{

private :

union REGS in_regs;

union REGS out_regs;

public:

virtual int initialize();

virtual void show_cursor();

virtual void hide_cursor();

virtual void information(int *r1,int *r2,int *r3,int *r4);

virtual void move_cursor(int x,int y);

virtual int ChickifPressed(int button);

virtual int ChickifReleased(int button);

int MouseINput(int button);

};

int mouse::initialize()

{

in_regs.x.ax=RESET;

int86(0x33,&in_regs,&out_regs);

return(out_regs.x.ax);

}

void mouse::show_cursor()

{

in_regs.x.ax=SHOW;

int86(0x33,&in_regs,&out_regs);

}

void mouse::hide_cursor()

{

in_regs.x.ax=HIDE;

int86(0x33,&in_regs,&out_regs);

}

void mouse::information(int *r1,int *r2,int *r3,int *r4)

{

in_regs.x.ax=*r1;

in_regs.x.bx=*r2;

in_regs.x.cx=*r3;

in_regs.x.dx=*r4;

int86(0x33,&in_regs,&out_regs);

*r1=out_regs.x.ax;

*r2=out_regs.x.bx;

*r3=out_regs.x.cx;

*r4=out_regs.x.dx;

}

void mouse::move_cursor(int x,int y)

{

int r1=MOVE,r2;

information(&r1,&r2,&x,&y);

}

int mouse::ChickifPressed(int button)

{

int m1,m2,m3,m4;

m1=PRESSED;

if(button==LEFT)

{

m2=LEFT;

information(&m1,&m2,&m3,&m4);

if(m2)

return(TRUE);

}

if(button==RIGHT)

{

m2=RIGHT;

information(&m1,&m2,&m3,&m4);

if(m2)

return(TRUE);

}

return(FALSE);

}

int mouse::ChickifReleased(int button)

{

int m1,m2,m3,m4;

m1=RELEASED;

if(button==LEFT)

{

m2=LEFT;

information(&m1,&m2,&m3,&m4);

if(m2)

return(TRUE);

}

if(button==RIGHT)

{

m2=RIGHT;

information(&m1,&m2,&m3,&m4);

if(m2)

return(TRUE);

}

return(FALSE);

}

/***************************************************/

main()

{

int d=DETECT,m,errorcode;

char string[80];

mouse MyMouse;

initgraph(&d,&m,"D:BC5BGI");

errorcode=graphresult();

if(errorcode!=grOk)

{

cout<<"Graphics error:"

<

<<"prees any key to exit";

getch();

clrscr();

exit(1);

}

if(!MyMouse.initialize())

{

cout<<"Mouse could not be ini..."<

<<"prees any key to exit";

getch();

clrscr();

exit(1);

}

int x=getmaxx()/10;

int y=getmaxy()/10;

settextstyle(SANS_SERIF_FONT,HORIZ_DIR,SIZE);

ellipse(9*x,9*y,0,360,x,y);

int h=2*textwidth("A");

MyMouse.show_cursor();

outtextxy(0,y,"Click left button to hide the cursor.");

while(!MyMouse.MouseINput(LEFT));

MyMouse.hide_cursor();

outtextxy(0,y+h,"Click left button to restore the cursor.");

while(!MyMouse.MouseINput(LEFT));

MyMouse.show_cursor();

int r1=GET_STATUS,r2;

MyMouse.information(&r1,&r2,&x,&y);

sprintf(string,"Cursor position now is (%d,%d)",x,y);

outtextxy(0,y+2*h,string);

outtextxy(0,y+3*h,"Click left button to put the cursor.");

outtextxy(0,y+4*h,"at the ellipse center");

while(!MyMouse.MouseINput(LEFT));

MyMouse.move_cursor(9*x,9*y);

outtextxy(0,y+5*h,"Click the right button to exit");

while(!MyMouse.MouseINput(RIGHT));

closegraph();

return(0);

}

[ALIGN=RIGHT]

شباب وبعد أن ذقت الويل في تعلم طريقة برمجة الماوس ظهر لي الخطأ التالي :[/[ mouse::MouseINput(int) in module gh.cpp]

فما هو سبب هذا الخطأ؟؟؟؟؟؟؟؟؟؟؟؟؟

ملاحظة: أنني أعمل في مصرف البورلاند في بيئة دوس!

أعمل على نظام xp

أرجوكم ياشباب ماهو سبب الخطأ.

هذا الموضوع مغلق.

مواضيع مشابهة