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 :

Problème avec les évéments souris


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 37
    Billets dans le blog
    1
    Par défaut Problème avec les évéments souris
    Salut!
    J'ai créé une fenêtre avec le style WS_POPUP que je souhaite personnaliser. Mais la fenêtre ne reçoit pas les messages WM_MOUSEMOVE et WM_LBUTTONDOWN... qui sont relatifs à la zone cliente. Par contre, les messages relatifs à la zone non cliente (renvoyée par le message WM_NCHITTEST) sont interceptés. Je ne vois pas où est le problème, vu que le style CS_DBLCLKS est définit.
    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 495
    Par défaut
    Il dit quoi Spy++ ?

  3. #3
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 37
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Il dit quoi Spy++ ?
    J'utilise Code::Blocks et le compilateur ne signale pas cela.
    Pour plus de précisions, lorsque je fais un clic dans la zone supposée être la zone cliente, elle reçoit le focus mais ne se met pas automatiquement au dessus de toutes les autres fenêtres. Mais par contre elle se met au premier plan lorsque je clique sur la zone non cliente.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 495
    Par défaut
    J'utilise Code::Blocks et le compilateur ne signale pas cela.
    VS Community Editions sont gratuites pour les particuliers et les petites entreprises.
    VS Express Editions sont gratuites.
    Utilisez ses outils, quitte à copier juste l'exécutable sur la machine.
    Spy++ est un outil indispensable pour travailler efficacement.
    Avec lui, vous aurez dynamiquement les valeurs des flags pour chaque fenêtre ainsi que la propagation des messages à chaque fenêtre, et l'arborescence des fenêtres.
    Commencer par vérifier l'existence de fenêtres parasites dans l’arborescence des fenêtres puis le routage des messages des fenêtres pour les messages qui vous intéressent.

  5. #5
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 37
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bacelar Voir le message
    VS Community Editions sont gratuites pour les particuliers et les petites entreprises.
    VS Express Editions sont gratuites.
    Utilisez ses outils, quitte à copier juste l'exécutable sur la machine.
    Spy++ est un outil indispensable pour travailler efficacement...
    Désolé pour l'intervalle de temps! (Quelques soucis de connexion internet et autres...).
    Merci pour le conseil; je verai celà plutard.
    En ce qui concerne mon problème, j'ai eu quand même à faire une remarque.
    Lorsque je crée un STATIC dans la fenêtre et que je clique dessus, celà resoud le problème...mais je ne suis pas sur que c'est la vériable solution. J'ai aussi pu découvrir quelques autres macros HT(...) comme par exemple HTCLIENT. Mais ils ne fonctionnent pas tous lorsque je définis leurs zone d'influence. J'ai pu remarqué que cela est dû au fait que message WM_NCHITTEST ne vérifie pas plus de 5 conditions lorsque j'utilise la fonction PtInRect() (et je ne sais pas pourquoi). En plus il y'a plusieur messages comme WM_MDIACTIVATE par exemple, qui ne sont pas interceptés.
    Bref si quelqu'un peut me proposer un doc détaillé sur la gestion des fenêtres POPUP, je l'accepte volontier.
    Merci!

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Concernant la zone non-client, un truc dont je me suis rendu compte récemment sous Windows 7, c'est que si Aero est activé, la zone non-client ne t'appartient plus: Les messages WM_NCHITTEST sont interceptés par le DWM.
    Il me semble qu'il y a des comportements de compatibilité pour détecter qu'une fenêtre "joue" avec sa zone non-client et faire en sorte que ça marche. Mon premier réflexe pour le signaler à Windows, ce serait de capter et traiter le message WM_NCCALCSIZE en plus de WM_NCHITTEST.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/12/2006, 23h02
  2. [wxpython] problème avec les événements souris
    Par kalimero dans le forum wxPython
    Réponses: 2
    Dernier message: 13/11/2005, 15h42
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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