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

MFC Discussion :

Detecter souris sur CButton


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Consultant informatique
    Inscrit en
    D�cembre 2006
    Messages
    255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 255
    Par d�faut Detecter souris sur CButton
    Bonjour,

    Je voudrais en effet pouvoir d�tecter lorsque l'utilisateur clic sur un bouton mais sans relacher le bouton de la sourie, et effectuer un traitement jusqu'a ce qu'il rel�che le bouton. C'est pour effectuer les fonctions 'Rembobiner' et 'avance rapide' pour un player audio.

    Etant donn� que le OnBnClick() ne se d�clanche que lorsque l'utilisateur � rel�ch� le bouton je ne peut pas l'utiliser.

    J'ai pens� r�cup�rer les coordonn�es de la sourie et d�tecter lorsqu'il y a un clic dans le rectangle correspondant au bouton, mais comment r�cup�rer le rectangle de mes CButton (CBitmapButton en fait) pour tester si mon curseur est � l'int�rieur ? Et est-ce une bonne solution ?

    Moi qui ai l'habitude de faire du java je trouve assez bizarre qu'il n'y ai pas les �v�nements classique comme OnMouseDown, OnMouseUp, OnMouseMove etc sur les boutons. C'est pas tr�s pratique je me demande pourquoi ce n'est pas g�r�.

    Je suis sous Visual C++ 2005 MFC Application boite de dialogue.

    Merci � vous.

  2. #2
    Membre confirm� Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par d�faut
    Bonjour,

    sauf erreur de ma part, c'est trait�, car CButton est d�riv� de CWnd.

    en interceptant le message WM_LBUTTONDOWN du CButton en question
    (remplacer L par R pour le bouton droit
    DOWN par UP pour le relachement du bouton, ou DBLCLK pour un double-clic),
    tu devrais traiter cet �v�nement

    Philippe

  3. #3
    Membre �clair�
    Homme Profil pro
    Consultant informatique
    Inscrit en
    D�cembre 2006
    Messages
    255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 255
    Par d�faut
    Merci Philippe320.

    Mais comment puis-je intercepter ce message ?

    Je suis d�butant en MFC.

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Il faut subclasser le bouton.
    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.

  5. #5
    Membre �clair�
    Homme Profil pro
    Consultant informatique
    Inscrit en
    D�cembre 2006
    Messages
    255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 255
    Par d�faut
    Je n'y arrive pas.
    Les exemples sur le net ne sont pas tr�s explicatifs...

    Vous n'auriez pas un bon lien, un tuto, un exemple ?

    Merci.

  6. #6
    Membre confirm� Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par d�faut
    Il faut cr�er une nouvelle classe (Project > Add Class),ensuite choisir MFC class,
    l'appeler CMonBouton par exemple, en le d�rivant de CButton ( base class)
    d�finir les fichiers (MonBouton.cpp et MonBouton.h)

    Ensuite, dans les propri�t�s de cette classe (choisis Class View pour voir ton projet classes par classes, tu as le message WM_LBUTTONDOWN : tu double-cliques dessus, et il te cr�er automatiquement la proc�dure charg�e du traitement de ce message.

    D�s que tu appuyeras sur le bouton gauche sur le bouton en question, tu arriveras � cet endroit du code.

    Il faut aussi lui dire que le bouton que tu as dessin� dans la ressource est du type CMonBouton (bouton droit et Propri�t�s)

    Voil�, en gros, j'sais pas si c'est tr�s clair, redemande moi sinon

    A+
    Philippe

  7. #7
    Membre �clair�
    Homme Profil pro
    Consultant informatique
    Inscrit en
    D�cembre 2006
    Messages
    255
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consultant informatique
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 255
    Par d�faut
    Tous �a pour �a. Ils ont pas pu faire plus compliqu� je pense.
    Pourquoi ne pas avoir g�rer �a comme le OnBnClick() ...

    Sinon je ne comprend pas bien, il faut que je d�clare mon bouton de type CMaNouvelleClass ? et non plus CBitmapButton

    Parceque �a ne g�n�re rien � part des messages d'erreurs.

    Et comment j'acc�de � tous mes attributs/fonctions de ma classe CMaClasseDlg depuis ma nouvelle classe ? Je ne peut pas cr�er d'instance de ma classe Dlg...


    Bizarre cette affaire.

  8. #8
    Membre confirm� Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Par d�faut
    pour les exemples, regarde http://www.codeguru.com/cpp/controls...cle.php/c2097/

    c'est le m�me principe : la fonction OnMouseMove est surclass�e pour d�finir le comportement en cas de mouvement de la souris

    d'ailleurs, le site est une mine d'or pour la personnalisation des interfaces et pour comprendre les MFC


    oui, tu d�clares la classe d�riv�e de CBitmapButton

    pour acc�der � la boite de dialogue, � v�rifier, un truc du genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    CDialog* maDialogue = (CDialog*)this->GetParent();
    tu as donc un pointeur vers le parent du bouton, donc vers la boite de dialogue (regarde, c'est ce qu'ils font dans le code indiqu� plus haut)

    avec maDialogue-> , tu peux acc�der aux fonctions de CDialog



    Philippe

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Detection de la souris sur un controle
    Par LibidoPostToxico dans le forum VB.NET
    R�ponses: 6
    Dernier message: 17/06/2010, 12h32
  2. Detection de la deconnexion de la souris sur ps2
    Par ichafik2000 dans le forum API, COM et SDKs
    R�ponses: 0
    Dernier message: 31/01/2009, 14h54
  3. simuler un click souris sur un CButton pb
    Par Emyleet dans le forum MFC
    R�ponses: 2
    Dernier message: 13/06/2008, 09h16
  4. Detection de click souris sur form - Besoin d'aide
    Par ggcourtois dans le forum Windows Forms
    R�ponses: 11
    Dernier message: 22/03/2007, 14h39
  5. R�ponses: 4
    Dernier message: 08/09/2006, 04h36

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