WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C/C ++ Programm (http://www.wcm.at/forum/showthread.php?t=46712)

Tubetraxxx-rOOm4- 19.02.2002 19:11

eh nicht!
goto is ne sprungmarke und gotoxy(x,y) ist zum positionieren des cursors am bildschirm um so das bildschirmlayout besser zu gestalten können!


mfg, tubetraxxx...

Tubetraxxx-rOOm4- 20.02.2002 23:04

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...

Tubetraxxx-rOOm4- 20.02.2002 23:29

Zitat:

Original geschrieben von it00x30
du meinst man kann mit der maus menüs führen, ohne ein fixes fenster zu haben. wie soll das gehen in der konsole, da weiss man ja nie wo im konsolenfenster man steht (scroll, ...)
klar ist das man grad mal die bildschirmausmaße hat, also 80 spalten und 25 zeilen im normalen textmodus....den man aber erweitern kann auf 80x50...
aber scroolen lässt sich sicherlich programmieren, is eigentlich nicht so tragisch...
mfg, patrick...

gaelic 21.02.2002 09:40

einfach mal den alten dos-editor starten und schon hat man ein anschauungsbeispiel. :p

Tubetraxxx-rOOm4- 21.02.2002 23:01

jop, hast recht....im dos einfach den edit...dort is ja auch scrolling eingebaut logischwer weise!
oder auch im borland c....kannst ja auch scrollen...;)

batigol1860 21.02.2002 23:08

An alle, die gotoxy für einen Sprungbefehl halten:

SCHÄMEN UND 1 STUNDE IN DIE ECKE STELLEN!!!

Eigentlich untypisch fürs WCM-Forum, so dass unqualifizierte Kommentare abgegeben werden. Redets lieber von etwas, wo Ihr euch auskennt.

:heul: :heul:

Sonic 21.02.2002 23:37

Zitat:

Original geschrieben von batigol1860
An alle, die gotoxy für einen Sprungbefehl halten:

SCHÄMEN UND 1 STUNDE IN DIE ECKE STELLEN!!!

Eigentlich untypisch fürs WCM-Forum, so dass unqualifizierte Kommentare abgegeben werden. Redets lieber von etwas, wo Ihr euch auskennt.

:heul: :heul:

Du solltest dich schämen!!
Oder das nächstemal genauer lesen bevor du deinen Kommentar postest. ;)

Hinweis: Lies doch mal das PS vom 2. Posting von COOLBININET!

lg

batigol1860 22.02.2002 10:09

Hi,

na gut, sorry - hab ich wirklich nicht gesehen.

*SCHÄM* (aber nur kurz)


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

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