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

C++ Discussion :

Détecter si la souris s'est déplacé d'1 seul pixel


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Par défaut Détecter si la souris s'est déplacé d'1 seul pixel
    Bonjour,

    Je voudrais créer un programme qui me permetra de détecter le déplacement de la souris pixel par pixel. Par exemple, si j'ai déplacé d'un coup la souris de 10 pixels, mon programme devra me signaler 10 fois que la souris s'est déplacée.

    J'utilise l'API windows et pour l'instant j'ai le bout de code suivant :
    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
    #include <windows.h>
    #include <stdio.h>
    #include <process.h>
     
    int main(int argc, char *argv[])
    {
    	POINT pt;
    	BOOL bContinue = TRUE;
        const INT Mask = 32768;
    	int tmp_x, tmp_y;
     
    	GetCursorPos(&pt);
    	tmp_x = pt.x;
    	tmp_y = pt.y;
     
    	while (bContinue)
        {
    		system("cls");
     
    		if (GetKeyState(VK_ESCAPE) & Mask)
                  bContinue = FALSE;
     
    		GetCursorPos(&pt);
     
    		if ( (pt.x != tmp_x) | (pt.y != tmp_y) )
    		{
    			printf("Le curseur a bouge.\n");
    			printf("x = %d   y = %d\n" , pt.x , pt.y);
    		}
     
    		tmp_x = pt.x;
    		tmp_y = pt.y;
     
        }
        return 0;
    }
    Existe-t-il une fonction qui permette de détecter si la souris se déplace d'un seul pixel ?

    Merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    A priori non.

    Au pire qu'est-ce qui t'empêche de traiter (par ex) un déplacement de 10 pixels comme 10 déplacements de 1 pixel ?

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par jean.cdc
    Existe-t-il une fonction qui permette de détecter si la souris se déplace d'un seul pixel ?

    Merci.
    C'est pas bon du tout ; tu est en programme console destiné à afficher du texte sur 80 colonnes *40 lignes donc pas de souris.
    Cela ne fonctionnera pas correctement il faut être en mode fenêtré graphique avec WinMain + procédure de gestion de messages
    Parce que en plein écran cela peut fonctionner; mais si tu fais alt +entree les données ne sont plus valides

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    C'est pas bon du tout ; tu est en programme console destiné à afficher du texte sur 80 colonnes *40 lignes donc pas de souris.
    Cela ne fonctionnera pas correctement il faut être en mode fenêtré graphique avec WinMain + procédure de gestion de messages
    Parce que en plein écran cela peut fonctionner; mais si tu fais alt +entree les données ne sont plus valides
    GetCursorPos se contente de renvoyer la position de la souris à l'écran, rien à voir avec la fenêtre active ou quoique ce soit d'autre du programme qui tourne.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut
    Citation Envoyé par Laurent Gomila
    GetCursorPos se contente de renvoyer la position de la souris à l'écran, rien à voir avec la fenêtre active ou quoique ce soit d'autre du programme qui tourne.
    +1

  6. #6
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Laurent Gomila
    GetCursorPos se contente de renvoyer la position de la souris à l'écran, rien à voir avec la fenêtre active ou quoique ce soit d'autre du programme qui tourne.

    OK mais quel est l'intérêt de vouloir récupérer les cordonnées de la souris dans un programme console ?
    Je suis sceptique c'est pas bon comme démarche, les cordonnées dépendent de plein de chose de la résolution écran etc....
    Dernière modification par mat.M ; 21/07/2006 à 16h09.

  7. #7
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Personnellement, je récupère également les coordonnées de la souris en mode console...
    C'est sur que c'est pas le top, mais si tu détectes également la taille en pixel de l'écran, tu peux alors t'exprimer en coordonnées relatives.
    Et ainsi utiliser ton programme dans toutes les situations.

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Oui il y a des API sous Windows pour cela ; sous d'autres OS il doit y a voir des fonctions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter si une page Ie est lancer sur le poste
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/08/2006, 14h46
  2. Détecter si une variable Integer est vide..
    Par mickael.be dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2006, 10h34
  3. Détecter qu'une page HTML est ouverte dans une frame
    Par Pigoulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 14h07
  4. Réponses: 3
    Dernier message: 03/01/2006, 18h04
  5. Détecter si une souris est connecté...
    Par Foub dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 31/07/2005, 20h41

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