maus im c++ grafikmodus

hi!
hab bis ich meinen compi neu aufgesetz hab n cpp file gehabt, indem ein "maus programm" war. kennt bzw hat jemand den maus-code??
mfg octopus
 
Windows ? *NIX , Umgebung etc ?
 
hi! hab es wirder gefunden!

// Maus-Unterst￾tzung
// Maus.cpp
#include <iostream.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>

//#define BGIPFAD "D:\\BORLAND\\BCPP\\BGI" // EDV1
#define BGIPFAD "D:\\Programm\\borlandc\\bgi" // EDV2

REGS re;

void GrenzenX(int x1,int x2)
{ re.x.ax=7;
re.x.cx=x1;
re.x.dx=x2;
int86(0x33,&re,&re);
}

void GrenzenY(int y1,int y2)
{ re.x.ax=8;
re.x.cx=y1;
re.x.dx=y2;
int86(0x33,&re,&re);
}


struct REGPACK reg;

void InitM(void)
{ reg.r_ax=0;
intr(0x33,&reg);

reg.r_ax=1;
intr(0x33,&reg);
}

void HideM(void)
{ reg.r_ax=2;
intr(0x33,&reg);
}

void ShowM(void)
{ reg.r_ax=1;
intr(0x33,&reg);
}

int GetMx(void)
{ reg.r_ax=3;
intr(0x33,&reg);
return(reg.r_cx);
}

int GetMy(void)
{ reg.r_ax=3;
intr(0x33,&reg);
return(reg.r_dx);
}

int MHit(void)
{ reg.r_ax=3;
intr(0x33,&reg);
return(reg.r_bx);
}


int isMin(int x1,int y1,int x2, int y2)
{
if(GetMx()>=x1&&GetMx()<=x2&&GetMy()>=y1&&GetMy()<=y2)return(1);
return(0);
}


int MMode;

struct GCursor
{ unsigned ScreenMaske[16], CursorMaske[16];
int XHot,YHot;
};

// Siehe Erkl?rung im ADIM - Skriptum
const GCursor Stift=
{ { 0xffe3,0xffc1,0xff80,0xff00,
0xfe00,0xfc01,0xf803,0xf007,
0xe00f,0xc01f,0xc03f,0x807f,
0x80ff,0x01ff,0x07ff,0x1fff,},

{ 0x0008,0x0014,0x0022,0x0041,
0x0082,0x0104,0x0208,0x0410,
0x0820,0x1040,0x1880,0x2500,
0x2600,0x5800,0x6000,0x8000,},
0,15
};

const GCursor Hand=
{ { 0xe1ff,0xe1ff,0xe1ff,0xe1ff,
0xe1ff,0xe000,0xe000,0xe000,
0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,},

{ 0x1e00,0x1200,0x1200,0x1200,
0x1200,0x13ff,0x1249,0x1249,
0xf249,0x9049,0x9001,0x8001,
0x8001,0x8001,0x8001,0xffff,},
5,0
};



const GCursor Kreuz=
{{ 0xfeff,0xfeff,0xfeff,0xfeff,
0xfeff,0xfeff,0xfeff,0x0001,
0xfeff,0xfeff,0xfeff,0xfeff,
0xfeff,0xfeff,0xfeff,0xfeff},
{0x0100,0x0100,0x0100,0x0100,
0x0100,0x0100,0x0100,0xfffe,
0x0100,0x0100,0x0100,0x0100,
0x0100,0x0100,0x0100,0x0100},
7,7
};


void kreuz()
{ reg.r_ax=9;
reg.r_bx=Kreuz.XHot;
reg.r_cx=Kreuz.YHot;
reg.r_dx=FP_OFF(Kreuz.ScreenMaske);
reg.r_es=FP_SEG(Kreuz.ScreenMaske);
intr(0x33,&reg);
}

void InitPinsel(void)
{ reg.r_ax=9;
reg.r_bx=Stift.XHot;
reg.r_cx=Stift.YHot;
reg.r_dx=FP_OFF(Stift.ScreenMaske);
reg.r_es=FP_SEG(Stift.ScreenMaske);
intr(0x33,&reg);
reg.r_ax=1;
intr(0x33,&reg);
MMode=1;
}

void InitHand(void)
{ reg.r_ax=9;
reg.r_bx=Hand.XHot;
reg.r_cx=Hand.YHot;
reg.r_dx=FP_OFF(Hand.ScreenMaske);
reg.r_es=FP_SEG(Hand.ScreenMaske);
intr(0x33,&reg);
reg.r_ax=1;
intr(0x33,&reg);
MMode=0;
}

void MausWo(int &x, int &y)
{ x=GetMx();
y=GetMy();
}


// Hauptprogramm -----------------------------------------
int main()
{
char taste;
int MausX=0, MausY=0, MausGedrueckt=0;
int karte = VGA;
int modus = VGAMED;

initgraph( &karte, &modus, BGIPFAD );

InitM();

// Grenzen der Maus einstellen (ganzer Bildschirm)
GrenzenX(1,639);
GrenzenY(1,479);

ShowM(); // Maus anzeigen

do
{
if ( kbhit() )
{
taste = getch();
}

MausX=GetMx(); // x Position der Maus
MausY=GetMy(); // y Position der Maus
MausGedrueckt=MHit(); // ob Maus gedrueckt oder nicht

if(MausGedrueckt == 1)
{
outtextxy( MausX, MausY, "hallo" );
}
} while ( taste != 'q' );

getch();
closegraph( );
return 0;

}
 
Zurück
Oben