Graphik Menu



  • THX



  • Hat vielleicht einer einen guten link über die "Graphic.h".
    Also welche funktionen ect. die header hat.
    Naja ansonsten wären links über grafickprogrammieren auch hilfreich 😃



  • Die unterstützten Funktionen stehen eh in der graphic.h und sind eigentlich auch recht sprechend benannt.

    Für Grafikprogrammierung allgemein empfehle ich dir das Spiele- und Grafikforum hier. 🙂



  • *aufwach da urlaub*

    @SideWinder
    pack doch die oder ähnliche maus auch noch ins faq plz, dann haben wir ne runde maussammlung:

    #include <stdio.h>
    #include <dos.h>
    #include <stdlib.h>
    #include <conio.h>
    
    #define MOUSE_LBUTTON 1
    #define MOUSE_RBUTTON 2
    #define MOUSE_MBUTTON 3
    
    const int MOUSE_INT=0X33;;
    
    int mouse_init();
    void mouse_on();
    void mouse_off();
    int mouse_getpos(int*px, int*py);
    
    int main()
    {
        int tasten;
        int posx, posy;
    
        if ((tasten=mouse_init())==-1)
        {
            printf("keine maus da");
            return EXIT_FAILURE;
        }
    
        printf ("Maus mit %d Tasten installiert.\n", tasten);
        printf ("zum beenden druecke eine maustaste\n");
    
        mouse_on();
    
        while(! (tasten=mouse_getpos(&posx, &posy)));
        printf("an der position %d/%d wurde die ", posx, posy);
        if(tasten & MOUSE_LBUTTON) printf (" linke %d",MOUSE_LBUTTON );
        if(tasten & MOUSE_RBUTTON) printf (" rechte %d",MOUSE_RBUTTON);
        if((tasten & MOUSE_MBUTTON)==MOUSE_MBUTTON) 
            printf (" mittlere %d",MOUSE_MBUTTON); //mouse mbutton hat mehrere bits
        printf (" Tasten gedrueckt\n");
        mouse_off();
    
        return EXIT_SUCCESS;
    }
    
    int mouse_init()
    {
        union REGS regs;
        regs.x.ax=0;
        int86(MOUSE_INT, &regs, &regs);
        if (regs.x.ax!=0XFFFF)
        return -1;
    
        return regs.x.bx;
    }
    void mouse_on()
    {
        union REGS regs;
        regs.x.ax=1;
        int86(MOUSE_INT, &regs, &regs);
    }
    
    void mouse_off()
    {
        union REGS regs;
        regs.x.ax=2;
        int86(MOUSE_INT, &regs, &regs);
    }
    int mouse_getpos(int*px, int*py)
    {
        union REGS regs;
        regs.x.ax=3;
        int86(MOUSE_INT, &regs, &regs);
    
        if(px)*px=regs.x.cx>>3;
        if(py)*py=regs.x.dx>>3;
        return regs.x.bx & 7;
    }
    


  • @elise
    Super Idee!!



  • Huhu elise 🙂

    Was ich nnoch anmerken würde : Der Mouse-Interrupt 0x33 ist so nicht funktionsfähig im DOS, es sei denn, ein Mousetreiber wird installiert. Ich sag das nur, weil auf nem Wim9x-Rechner im DOS-Modus klappt des sonst nich...
    Wie das mit den NT-basierten Dingern ist, hab ich noch nicht probiert..



  • @DocJunior
    Hauptsache das Programm ist auf 16Bit compiliert ;).



  • DocJunioR schrieb:

    Huhu elise 🙂

    Was ich nnoch anmerken würde : Der Mouse-Interrupt 0x33 ist so nicht funktionsfähig im DOS, es sei denn, ein Mousetreiber wird installiert. Ich sag das nur, weil auf nem Wim9x-Rechner im DOS-Modus klappt des sonst nich...
    Wie das mit den NT-basierten Dingern ist, hab ich noch nicht probiert..

    jo, bei mir sind auf allen dos fähigen rechner (win 98, 3/86) mousetreiber drauf..

    dann bräuchten wir noch ein dos maus programm, für "ohne treiber geladen".. *denk*



  • schöne GUI für Borland C++ (3.1) hab ich geschrieben, ist bestandteil von meinem TodoX... ich hab die GUI mal aus TodoX "extrahiert" und in eine extra zip-file gesteckt, dort ist auch ein einfaches menü dabei, schau einfach mal, ob du dort was ausschlachten kannst...

    http://www.geocities.com/tobiasdoerffel/downloads/objgui.zip



  • @elise: Öhm ich glaub dein Code steht schon in der FAQ: http://www.c-plusplus.net/forum/viewtopic.php?t=39315 - ist doch der Gleiche oder?

    Man merkt offenbar wieder, dass wenn ich etwas nicht selbst schreibe es zu wenig auffällt ;).

    Eventuell setz ich mich am Weekend hin und schreib einen umfassenden Text über Maus mit 16bit und 32bit.

    MfG SideWinder


Anmelden zum Antworten