Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Bibliothèques, systèmes et outils
Bibliothèques, systèmes et outils Forum d'entraide sur les bibliothèques, la programmation système et les outils en C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/10/2012, 19h15   #1
charif591
Invité de passage
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 24
Points : 3
Points : 3
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 ?


charif591 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2012, 23h54   #2
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
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.
Melem est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 30/10/2012, 19h49   #3
charif591
Invité de passage
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 24
Points : 3
Points : 3
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
charif591 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 14h15   #4
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
Voici un exemple de code qui met en oeuvre l'interruption 33h, trouvé sur angelfire.
Code :
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.
Melem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/10/2012, 18h10   #5
charif591
Invité de passage
 
Inscription : février 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 24
Points : 3
Points : 3
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++
charif591 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2012, 09h54   #6
Melem
Rédacteur/Modérateur
 
Avatar de Melem
 
Homme Jessee Michaël Christian Edouard
Ingénieur développement logiciels
Inscription : janvier 2006
Messages : 3 661
Détails du profil
Informations personnelles :
Nom : Homme Jessee Michaël Christian Edouard
Âge : 27
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 661
Points : 8 435
Points : 8 435
Envoyer un message via MSN à Melem
Ah ... tu vois bien que c'est pas secret .
Melem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h28.


 
 
 
 
Partenaires

Hébergement Web