IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques, systèmes et outils C Discussion :

code pour utiliser la molette de la souris ?


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 24
    Points : 10
    Points
    10
    Par défaut code pour utiliser la molette de la souris ?
    Salut.

    je cherche un code qui permet d'utiliser la molette de souris sous Turbo c,
    ou code::block .

    il s'agit de la programmation system, c'est a dire quelle est la fonction qui permet d'utiliser la molette de la souris ?



  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Avec Turbo C, c'est-à-dire sous DOS, il faut utiliser l'interruption 33h. Tu trouveras facilement de la doc sur cette interruption en parcourant le net.

    Sous Code::Blocks, donc avec probablement un compilateur pour Windows (vu le lien avec MS-DOS), ça dépend de ce que tu veux faire. Pour intercepter les événements de la souris, il faut traiter les messages tels que WM_MOUSEWHEEL et compagnie. Pour contrôler la souris, il faudra plutôt utiliser des fonctions comme mouse_event. Dans tous les cas, il s'agira de faire de faire de la programmation Win32, c'est-à-dire en utilisant l'API Win32.

    Bonne recherche.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    salut.

    je travail avec turbo c (sous dos ou console)
    j'ai chercher et je n'ai rien trouver, peut être que c'est un secret.

    a++

    bonne fin d'année

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Voici un exemple de code qui met en oeuvre l'interruption 33h, trouvé sur angelfire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    /* Demonstrates the most basic mouse function */
    #include <conio.h>
    #include <stdio.h>
    #include <dos.h>// prototypes 
    int initialize_mouse(); 
    void reset_mouse (); 
    void show_mouse_pointer (); 
    void hide_mouse_pointer(); 
    void get_mouse_position (int *x, int *y, int *mousebutton); 
    void show_mouse_coordinate(); 
    void clear_mouse_coordinate (); 
     
    union REGS iReg, oReg; 
    struct SREGS segregs; 
    int c, numbuttons, oldmouse, mousebutton, movx, movy; float mouseversion;
    int Quit; 
    int x,y,Buttons,OldX,OldY; 
     
    void main () 
     { _setcursortype (_NOCURSOR);
       clrscr(); 
       gotoxy (15,5);cputs ("Mouse Movement Demonstration Program");
       gotoxy (15,6);cputs ("Written For PDRM staff by Kamal Zamli");
       show_mouse_pointer();                            
       gotoxy(18,9);puts("*****************************************");
       gotoxy (18,10);puts("Click Here to Quit");      
       gotoxy(18,11);puts("**************************************");
       Quit=0; 
       OldX=-1; 
       OldY=-1; 
       while (!Quit) 
        { 
         get_mouse_position(&x,&y,&Buttons);
         if ((OldX != x) || (OldY != y)) 
           { 
            clear_mouse_coordinate(); 
            show_mouse_coordinate();
            OldX=x; 
            OldY=y; 
           } 
        if (((x>=15) & (x<=35)) & ((y==9)) & (Buttons==1)) 
          { 
            Quit=1; 
          }
     } 
     hide_mouse_pointer(); 
     reset_mouse(); 
     clrscr();
     _setcursortype (_NORMALCURSOR); 
    } 
     
    void clear_mouse_coordinate() 
     { 
      hide_mouse_pointer();
      gotoxy (25,1); puts (" "); 
      gotoxy (25,2); puts (" ");
      show_mouse_pointer(); 
     } 
     
    void show_mouse_coordinate () 
     { 
      char xstring[10],ystring[10];
      hide_mouse_pointer(); 
      sprintf (xstring,"x = %d",x); 
      sprintf (ystring,"y= %d",y); 
      gotoxy (25,1);puts (xstring); 
      gotoxy (25,2);puts (ystring);
      show_mouse_pointer(); 
     } 
     
    int initialize_mouse () 
     { 
      iReg.x.ax = 0; 
      int86(0x33, &iReg, &oReg); 
      if (oReg.x.ax == 0xFFFF) 
       return (oReg.x.bx);
      else return 0; 
    } 
     
    void reset_mouse () 
     { 
      iReg.x.ax = 0; 
      int86 (0x33, &iReg,&oReg); 
     } 
     
    void show_mouse_pointer () 
     { 
      iReg.x.ax = 1; 
      int86 (0x33,&iReg, &oReg); 
     } 
     
    void hide_mouse_pointer () 
     { 
      iReg.x.ax = 2; 
      int86(0x33, &iReg, &oReg); 
     
     }
     
     void get_mouse_position (int *x, int *y,int *mousebutton) 
    { 
     iReg.x.ax = 3; 
     int86 (0x33, &iReg, &oReg);
     *x = oReg.x.cx / 8; 
     *y = oReg.x.dx / 8; 
     *mousebutton = oReg.x.bx; 
     }
    Lorsque tu auras compris comment ça marche, tu pourras y ajouter le support de la molette (mouse wheel) en te faisant aider de cette doc qui explique comment l'utiliser avec l'interruption 33h. Avoir une doc bien claire sur les interruptions en général aussi pourrait t'aider à mieux comprendre tout cela.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup.

    j'ai trouver aussi une documentation interessante sur la sourie :

    http://cmp.felk.cvut.cz/~pisa/linux/mousedrivers.pdf

    je cherche encore un exemple de code, je n’oublierai pas de le poster
    s'il fonctionne bien

    a++

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Ah ... tu vois bien que c'est pas secret .

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2015, 23h22
  2. Réponses: 4
    Dernier message: 15/11/2009, 18h00
  3. Utiliser la molette de la souris
    Par systemofaxav dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/05/2006, 16h54
  4. Réponses: 1
    Dernier message: 04/04/2006, 14h28
  5. erreur code pour désactiver molette souris.
    Par rangernoir dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo