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 :

Vc++ evenement Wm_lbuttonup


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut Vc++ evenement Wm_lbuttonup
    Bonjour,

    J'ai une class CSkinDialog qui herite d'un CDialog.
    Je recupere bien tout les messages li�s au bouton de la souris WM_RBUTTONUP WM_RBUTTONDOWN WM_LBUTTONDOWN mais pas le WM_LBUTTONUP.
    Je recupere ce message WM_LBUTTONUP uniquement lorsque je double click. D'ailleurs je ne recupere pas le WM_LBUTTONDBLCLK non plus lors d'un double click.
    Est ce que cela cause a quelqu'un ce genre de probleme ?

    Merci.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    hum bizarre, tu as regard� si il n'y a pas un traitement particulier sur ces messages dans ta classe parent ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut
    J'ai verifi�, j'ai aucun traitement.
    J'ai regard� aussi au niveau des PreTranslateMessage(...) de ma class parent et je ne recois pas non plus les WM_LBUTTONUP.
    Quel est le mecanisme qui pourrait les filtrer ? J'ai cherch� sur le net un truc dans ce gout l� mais j'ai rien trouv�.
    Voila, si quelqu'un aurait une id�e, elle serait la bien venu.

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    ces messages sont bien present dans le beginmessagemap ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut
    Oui

    BEGIN_MESSAGE_MAP(CSkinDialog, CDialog)
    //{{AFX_MSG_MAP(CSkinDialog)
    ON_WM_PAINT()
    ON_WM_LBUTTONDOWN()
    ON_WM_RBUTTONDOWN()
    ON_WM_LBUTTONUP()
    ON_WM_MOUSEMOVE()
    ON_WM_ERASEBKGND()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    un detail :
    quand tu testes ces clics souris ,tu le fais sur la surface de la dialogue et pas sur un contr�le de la dialogue ?


  7. #7
    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
    c'est normal que RBUTTONUP n'y soit pas?
    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.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut
    M�dinoc :
    Oui c'est normal. Je l'avais supprim� pour des test. Mais si je le rajoute. Pas de probleme il fonctionne.

    Je fais bien le clic sur la fenetre et pas sur un controle.
    Si j'utilise le Spy de visual, Je vois bien l'evenement Bouton Gauche up dans la liste des messages. Mais il ne parvient pas a ma fenetre. Vraiment bizarre.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut
    J'ai trouv�
    C'etait bien sur stupide :

    Dans la fonction
    void CSkinDialog::OnLButtonDown(UINT nFlags, CPoint point)
    J'avais rajout� ca :
    PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
    Ca indique au system que l'utilisateur a cliquer sur la barre bleu et le deplacement de la fenetre et alors automatique tant qu'il laisse la touche down appuy�. C'est peut etre pas super elegant mais je connais pas autre chose. (ne pas oubli� que c'est pour gerer des Skins, donc pas de barre bleu)
    Le probleme dans ce cas, ce qu'il semble ne plus me renvoyer le LBUTTONUP.
    J'ai donc modifi� mon code comme suit :
    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
     
    void CSkinDialog::OnLButtonDown(UINT nFlags, CPoint point)
    {
    bFlagLButtonDown=true;
    ...
    }
     
    void CSkinDialog::OnLButtonUp(UINT nFlags, CPoint point)
    {
    bFlagLButtonDown=false;
    ...
    }
     
    void CSkinDialog::OnMouseMove(UINT nFlags, CPoint point) 
    {
     // TODO: Add your message handler code here and/or call default
    if(bFlagLButtonDown==true)
    {
    PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
    bFlagLButtonDown = false;
    }
    ....
    }
    et ca marche.
    Cependant si quelqu'un a une meilleur solution , je suis preneur.

    Merci pour votre aide.
    Pense � mettre la balise code ,Merci Farscape

  10. #10
    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
    J'ai d�j� jou� avec WM_NCHITTEST et WM_NCCALCRECT pour avoir des contr�les skinn�s. Avec �a, je d�terminais moi-m�me quelle partie est la barre de titre et quelle partie est la zone client.
    Par contre, tu devras aussi traiter le message WM_NCPAINT pour dessiner ta barre de titre perso.
    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.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par d�faut
    merci pour l'info.

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

Discussions similaires

  1. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et ant�rieur
    R�ponses: 5
    Dernier message: 18/10/2002, 17h09
  2. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et ant�rieur
    R�ponses: 4
    Dernier message: 05/09/2002, 15h46
  3. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    R�ponses: 3
    Dernier message: 28/08/2002, 10h08
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    R�ponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    R�ponses: 2
    Dernier message: 04/06/2002, 15h21

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