MAUS für SVGA256.bgi



  • MAUS für SVGA256.bgi

    Hallo!

    Ich habe ein großes Problem!!!

    Ich programmiere in C mit Borland C++ 3.1.
    Zuvor benutzte ich den Grafiktreiber egavga.bgi, ich hatte auch eine Maus dazu. Doch da ich eine höhere Auflösung wollte, nahm ich svga256.bgi.

    Das Problem ist, dass diese Maus bei svga256.bgi nicht funktioniert.

    Hat jemand zufällig eine Maus für diesen Treiber, oder kann mir sonst irgendwie weiterhelfen?

    Anmerkung: ich habe gehört, dass bei diesen Treibern (svga-Treibern) eine sogenannte hgxmouse gibt, doch ich kann im Internet nicht die Datei hgxmouse.h finden.

    Danke im Voraus!!!!!!!!!!!!



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das Hauptproplem ist, dass eine Fehlermeldung ausgegeben und das Programm abgebrochen wird, sobald die Maus angezeigt wird.
    Die Koordinaten und die Maus-Tasten können daher trotzdem erfasst werde.

    DOWNLOAD SVGA256.BGI
    Dies Datei sollte man am besten in den gleichen ordner wie die *.c packen.

    Beispiel Programm:
    Compiler: Borland C++ 5.02
    Umgebung: DOS(Standard)
    Zielmodell: HUGE

    ABER funktioneirt mit Borland C++ 3.1 auch ohne extra Einstellung

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <dos.h>
    
    #include <graphics.h>
    
    /////DEFINES FÜR MHit()//////
    #define NO_BUTTON    0
    #define BUTTON_LEFT  1
    #define BUTTON_RIGHT 2
    #define BUTTON_BOTH  3
    /////////////////////////////
    
    /////DEFINES FÜR SVGA256/////
    #define SVGA256_320x200    0
    #define SVGA256_640x400    1
    #define SVGA256_640x480    2
    #define SVGA256_800x600    3
    #define SVGA256_1024x768   4
    #define SVGA256_1280x1024  5
    /////////////////////////////
    
    /////MAUS FUNKTIONEN/////////
    void InitM(void);
    void HideM(void);
    void ShowM(void);
    int GetMx(void);
    int GetMy(void);
    int MHit(void);
    /////////////////////////////
    
    ////GRAFIKMODUS FUNKTIONEN///
    void InitGraphMode(void);
    huge svgamode(void);
    /////////////////////////////
    
    REGS re;
    struct REGPACK reg;
    
    void main()
    {
       InitGraphMode();
    
       InitM();      //BRICHT BEIM AUSFÜHREN AN DIESER STELLE
                     //MIT EINER FEHLERMELDUNG AB
    
       while(!kbhit() );
    }
    
    void InitGraphMode(void)
    {
        int GraphDriver = DETECT;
        int GraphMode;
        int ErrorCode;
    
        installuserdriver("svga256", svgamode );
    
        initgraph( &GraphDriver, &GraphMode, "" );
        ErrorCode = graphresult();
    
        //Beendet das Proramm. 1 bedeutet das ein Fehler aufgetreten ist
        if( ErrorCode != grOk )
        {
        	printf(" Graphik System Fehler: %s\n", grapherrormsg( ErrorCode ) );
          getch();
          exit( 1 );
    	}
    
    }
    
    huge svgamode(void)
    {
    	return SVGA256_1024x768;
    }
    
    void InitM(void) //inititialisiert die Maus
    {
    	reg.r_ax=0;
       intr(0x33,&reg);
    
      	reg.r_ax=1;
      	intr(0x33,&reg);
    }
    
    void HideM(void) //Versteck die Maus
    {
    	reg.r_ax=2;
      	intr(0x33,&reg);
    }
    
    void ShowM(void) //Zeigt die Maus an
    {
    	reg.r_ax=1;
      	intr(0x33,&reg);
    }
    int GetMx(void)  //Gibt Die X-koordinate der Maus zurück
    {
    	reg.r_ax=3;
      	intr(0x33,&reg);
      	return(reg.r_cx);
    }
    
    int GetMy(void) //Gibt Die Y-koordinate der Maus zurück
    { 	reg.r_ax=3;
      	intr(0x33,&reg);
      	return(reg.r_dx);
    }
    
    int MHit(void)  //Gibt die aktuelle gedrückte Taste zurück
    {
    	reg.r_ax=3;
      	intr(0x33,&reg);
      	return(reg.r_bx);
    }
    


  • Lele schrieb:

    Anmerkung: ich habe gehört, dass bei diesen Treibern (svga-Treibern) eine sogenannte hgxmouse gibt, doch ich kann im Internet nicht die Datei hgxmouse.h finden.

    "HGXMOUSE" ist ein TSR-Maustreiber für MS-DOS. Hättest mal vor 10 Jahren posten sollen.
    Dann wäre eine Antwort ev. schneller gekommen 🙂
    http://ftp2.ua.freebsd.org/pub/msdos/drivers/mouse/hgxmou10.zip


Anmelden zum Antworten