WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 20.02.2002, 23:04   #12
Tubetraxxx-rOOm4-
Jr. Member
 
Registriert seit: 13.02.2002
Alter: 41
Beiträge: 24


Tubetraxxx-rOOm4- eine Nachricht über ICQ schicken
Standard

das is mal der code für die diversen mausfunktionen....
is halt die maussteuerung im textmodus...der cursor ist im prinzip ein BLOCK (so wie _setcursortype(_SOLID); )
bei diversen fragen fragt einfach ganz ungeniert...)


union REGS outregs; //global für Testauswertung wird benötigt!

void posmaus(int x, int y)
{
REGS reg;

reg.x.ax=4;
reg.x.cx=x*8-1;
reg.x.dx=y*8-1;
int86(0x33,&reg,&reg);
}

int mousecheck() //schaut ob maus existiert und #der tasten
{
union REGS inregs;
inregs.x.ax = 0;
int86(0x33,&inregs,&outregs);
return(outregs.x.ax ? outregs.x.bx : 0);
}

void mousecursor(int toggle) //schaltet mauscursor ein/aus
{
union REGS inregs;
if(toggle) inregs.x.ax = 1;
else inregs.x.ax = 2;
int86(0x33,&inregs,&outregs);
}

int mouserow() //gibt die zeile in der sich die maus
{ //befindet zurück
union REGS inregs;
inregs.x.ax = 3;
int86(0x33,&inregs,&outregs);
return(outregs.x.dx/8+1);
}

int mousecol() //gibt die spalte in der sich die maus
{ //befindet zurück
union REGS inregs;
inregs.x.ax = 3;
int86(0x33,&inregs,&outregs);
return(outregs.x.cx/8+1);
}

int mousebuttons() //schaut ob eine maustaste gedrückt
{ //ist
union REGS inregs;
inregs.x.ax=6;
int86(0x33,&inregs,&outregs);
return(outregs.x.ax & 3);
}

int mouseclick() //schaut ob maustasten gedrückt wurden
{
int click =0;
union REGS inregs;
inregs.x.ax = 5;
inregs.x.bx = 1;
int86(0x33,&inregs,&outregs);
click = outregs.x.ax << 1;
int86(0x33,&inregs,&outregs);
return(click | outregs.x.ax);
}

void mousestat(unsigned int *button, unsigned int *col, unsigned int *row)
{
union REGS inregs,outregs; //Gibt die aktuelle Position und
struct SREGS segregs; //den Tastenstatus zurück
inregs.x.ax=0x33;
int86x(0x33,&inregs,&outregs,&segregs);
*button=outregs.x.bx;
*col=outregs.x.cx;
*row=outregs.x.dx;
}

void mousetcur(char zeichen)
{
union REGS inregs,outregs; //Funktion um die art
struct SREGS segregs; //des mauscorsors zu ändern
inregs.x.ax=0x000A; //Möglich sind alle ASCII-
inregs.x.bx=0x0000; //Zeichen
inregs.x.cx=0x7700;
inregs.x.dx=0x7700;
inregs.x.dx |= zeichen;
int86x(0x33,&inregs,&outregs,&segregs);
}

void mouseget(unsigned *button, unsigned *col,unsigned *row,unsigned *keystat)
{
unsigned hbut,hcol,hrow; //hilfsvariablen
char taste;

*keystat=0;
mousestat(&hbut,col,row); //checkt den mausstatus
//einmal vorerst und dann
while(!hbut && !kbhit()) //so lange keine taste gedrückt
{ //wird-->
mousestat(&hbut,col,row); //checkt den mausstatus
}
*button=hbut; //merke gedrückte taste
while(hbut) //und warte bis die taste
{ //losgelassen wurde
mousestat(&hbut,&hcol,&hrow);
}
if(kbhit()) //wenn eine taste gedrückt
{ //(tastatur)
taste=getch(); //merke taste
*keystat |= 0x0100; //und setze flag
if(kbhit()) //check ob weitere taste
{
taste=getch();
*keystat |= 0x0200; //wenn gedrückt
*keystat |= taste; //return taste (neu)...
}
else
*keystat |= taste; //sonst alte...
}
}

sodala....bei diversen fragen steh ich gern zu verfügung...

mfg, patrick...
____________________________________
so long...
[ d:j ]
-rOOm4-

webmaster von www.3hdc.com
Tubetraxxx-rOOm4- ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:42 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag