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

GTK+ avec C & C++ Discussion :

recuperer les coordonnées de la souris


Sujet :

GTK+ avec C & C++

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut recuperer les coordonnées de la souris
    Bonjour , comment on fait pour recuperer les coordonnées du pointeur ?
    J'ai trouvé la fonction void gtk_widget_get_pointer(GtkWidget *widget, gint *x, gint *y);
    mais comment faire pour qu'elle me retourne les coordonées dans la totalité de la surface de l'ecran ?

  2. #2
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Bien le bonsoir à toi!

    Je suis dans le même cas et voilà ce que j'ai trouvé:

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    void position_souris( GtkWidget *widget, GdkEventMotion *event )
    {
        gint x1, y1;
        gint x2, y2;
     
        /* Position dans la fenêtre */
        if (event->is_hint)
            gdk_window_get_pointer (event->window, &x1, &y1, NULL);
        else
        {
            x1 = event->x;
            y1 = event->y;
        }
        /* Position dans l'écran */
        if (event->is_hint)
            gdk_window_get_pointer (
                gdk_screen_get_root_window(gdk_screen_get_default()),
                &x2, &y2, NULL);
        else
        {
            x2 = event->x_root;
            y2 = event->y_root;
        }
        /* Affichage */
        g_printf("x:%d  y:%d\t\tx:%d  y:%d\n", x1, y1, x2, y2);
    }
     
    int main(int argc, char **argv)
    {
        /* Variables */
        GtkWidget * MainWindow;
     
        /* Initialisation de GTK+ */
        gtk_init(&argc, &argv);
     
        /* Création de la fenêtre */
        MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        g_signal_connect(G_OBJECT(MainWindow), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
     
        /* Connexion des signaux */
        gtk_signal_connect (GTK_OBJECT (MainWindow), "motion_notify_event",
                            (GtkSignalFunc) position_souris, NULL);
        /* Désigne les évènements à gérer  */
        gtk_widget_set_events (MainWindow, GDK_POINTER_MOTION_MASK);
     
        /* Affichage et boucle évènementielle */
        gtk_widget_show(MainWindow);
        gtk_main();
     
        /* Fermeture de GTK+ */
        gtk_exit(EXIT_SUCCESS);
        return EXIT_SUCCESS;
    }
    J'espère que c'est bien ce que tu cherchais

    Par contre chez moi j'ai un petit soucis avec cette fonction.
    Je l'utilise pas telle que ci-dessus mais c'est la même chose.
    J'ai ces warning là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     undefined reference to `gdk_screen_get_default'
     undefined reference to `gdk_screen_get_root_window'
     undefined reference to `gdk_window_get_pointer'
    Ce que je trouve bizarre c'est que j'ai bien inclu gtk.h et même en essayant avec gdk.h ça ne veut toujours pas marcher...
    (et pourtant la fonction donnée plus haut marche bien chez plusieurs personnes)

    Alors est-ce dû à la version de gtk ? Sachant que j'ai la version 2.2.4

    J'ai pensé que ce n'était pas la peine de recréer un sujet pour ma question, mais si jamais ça ne va pas comme ça pas de soucis

    Alors si quelqu'un pouvait m'aider je l'en remercie d'avance.

    Merci bien

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut
    Merci bcp maisce code retourne les coordonnées de la souris dans la fenetre crée par le programme , pas dans tt l'ecran.
    Telecharge la dernier version de gtk et essaie avec .

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    t'as des fonctions pour trouver les coordonnées absolues du coin en haut à gauche d'une fenêtre gtk+ (me rappelle plus du nom sans chercher).

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut
    du coin en haut à gauche ??

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Euh oui, pourquoi ? C'est à http://library.gnome.org/devel/gdk/s...dow-get-origin que je pensais

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par isoman Voir le message
    Merci bcp maisce code retourne les coordonnées de la souris dans la fenetre crée par le programme , pas dans tt l'ecran.
    Telecharge la dernier version de gtk et essaie avec .

    Salut,

    Ha pourtant dans le code il y a ce morceau là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     /* Position dans l'écran */
        if (event->is_hint)
            gdk_window_get_pointer (
                gdk_screen_get_root_window(gdk_screen_get_default()),
                &x2, &y2, NULL);
        else
        {
            x2 = event->x_root;
            y2 = event->y_root;
        }

    Donc je pensais que c'était ce que tu cherchais désolée

    Par contre moi ca ne marche toujours pas -_-

Discussions similaires

  1. recuperer les coordonnées de la souris lors d'un appui sur une touche
    Par haraelendil dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 22/11/2007, 13h23
  2. les coordonnés de la souris
    Par clubinfo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/04/2007, 14h07
  3. Calculer les coordonnées de la souris en 3D ?
    Par supergrey dans le forum DirectX
    Réponses: 3
    Dernier message: 26/08/2006, 21h47
  4. recuperer les coordoonees de la souris (sans applet)
    Par magnus2005 dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 13/10/2005, 09h21
  5. bouger une div selon les coordonnées de la souris
    Par 10-nice dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/09/2005, 15h31

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