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

Visual C++ Discussion :

[MFC] Comment intercepter le message d'un slider ?


Sujet :

Visual C++

  1. #1
    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 [MFC] Comment intercepter le message d'un slider ?
    Bonjour � tous,

    grace � Farscape et �
    http://c.developpez.com/faq/vc/?page...omboxInToolBar

    j'ai ins�r� un slider dans une toolbar.

    je lui ai donn� un ID, et j'ai une proc�dure pour g�rer une action sur ce slider.
    Mais quel message intercepter dans mon MESSAGE_MAP ?
    j'ai essay� un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    	ON_CONTROL(TB_THUMBPOSITION,ID_NB_DIVISIONS,ChangerNombreDivisions)
    mais DebugView me dit :
    [3268] Warning: no message line prompt for ID 0x8050.
    quand je d�place le curseur

    (0x8050 est bien l'ID correct de mon slider)


    J'esp�re avoir �t� clair.
    Merci de vos r�ponses
    Philippe

  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
    salut,
    sauf erreur de ma part un slider n'a pas ce genre de message mais .
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    BEGIN_MESSAGE_MAP(CDlgAdvanced, CDialog)
        //{{AFX_MSG_MAP(CDlgAdvanced)
        ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDERPERF, OnReleasedcaptureSliderperf)
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    void CDlgAdvanced::OnReleasedcaptureSliderperf(NMHDR* pNMHDR, LRESULT* pResult) 
    {
        // TODO: Add your control notification handler code here
     
        *pResult = 0;
    }

  3. #3
    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
    Encore tout bon Farscape
    Ca fonctionne comme cela :
    2 remarques cependant :

    1. d'apr�s http://msdn2.microsoft.com/en-us/library/ekx9yz55.aspx

    TB_THRUMBPOSITION serait bien un message d'un slider

    2. ta solution permet de g�rer le message lors du relachement du bouton de la souris. Mais d'apr�s MSDN, TB_THRUMBTRACK est g�n�r� quand on fait glisser le slider (ce serait mieux dans mon cas)

    Qu'en penses-tu?
    Philippe

  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
    oui ,je n'avais pas verifi� .
    en fait d'apres la doc il faut que tu intercepte le message ON_WM_VSCROLL() ou ON_WM_HSCROLL() suivant l'orientation de ton slider .
    apres dans ton message:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void CMyPanel::OnVScroll(UINT nSBCode,UINT nPos,CScrollBar *pScrollBar)
    {
    // get the scroll position
     
        switch(nSBCode)
        {
     
          case TB_THUMBPOSITION://....
        }
    }

  5. #5
    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
    Merci de ta r�ponse
    OK pour le principe, mais mon slider est cr�� dynamiquement (au moment de la cr�ation de sa toolbar)

    Comment intercepter le message WM_HSCROLL d'une fenetre dynamique?
    j'suis un peu perdu ...

    Philippe

  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
    c'est pas sur le slider mais sur la fenetre ou est situ� la toolbar :la mainframe ou la mdichild...

  7. #7
    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
    OK, mais �a ne fonctionne pas :
    j'ai
    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
     
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    	//{{AFX_MSG_MAP(CMainFrame)
    	ON_WM_CREATE()
    	ON_WM_PAINT()
    	ON_WM_CLOSE()
    	ON_WM_HSCROLL()
    	ON_WM_ACTIVATE()
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    ......
     
    void CMainFrame::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    	// TODO: Add your message handler code here and/or call default
     
     
    if (nSBCode==TB_THUMBTRACK) nombreDivisions=2*(((CSliderCtrl*)pScrollBar)->GetPos()/2);
    TRACE1("Nombre de divisions : %d",nombreDivisions);
     
     
     
     
    	CFrameWnd::OnHScroll(nSBCode, nPos, pScrollBar);
    }
    mais je n'intercepte rien du tout ...

    Le message WM_HSCROLL de la mainframe n'est-il pas g�n�r� uniquement lorsque l'on joue avec l'ascenseur horizontal (s'il y en a un) de la fenetre de l'application?

    Philippe

  8. #8
    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
    c'est pour toutes les scrollbars.
    ton slider est horizontale ?

  9. #9
    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
    oui, il est horizontal :
    si je te comprends bien, CMainFrame::OnHScroll(...) devrait intercepter
    TOUS les messages d'elle m�me et de ses fillles, donc du slider
    car elle est la fille de la toolbar qui est la fille de la mainframe ?

    (je dois avoir quelques lacune basiques d�sol�)
    Philippe

  10. #10
    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
    oui c'est �a tu as tout compris
    le pointeur pass� en argument permet d'identifier le contr�le .
    tu devrais regarder avec spy en selectionnant uniquement le message scroll
    pour voir si il passe bien...

  11. #11
    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
    je viens de faire l'essai rapide dans une dialogue on recoit bien le message HScroll et pScrollBar recoit bien l'adresse du slider...


  12. #12
    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
    Merci pour le temps pass�...
    je n'ai plus qu'� creuser �a

    Bon week-end
    Philippe

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

Discussions similaires

  1. Comment Intercepter les messages Excel en .net
    Par la mouette dans le forum VB.NET
    R�ponses: 1
    Dernier message: 19/10/2008, 21h07
  2. comment intercepter des messages e-mail?
    Par Just-Soft dans le forum Langage
    R�ponses: 2
    Dernier message: 03/10/2008, 16h51
  3. Comment intercepter les messages d'un processus sous windows?
    Par Hamdi Hedhili dans le forum G�n�ral Java
    R�ponses: 3
    Dernier message: 17/03/2008, 16h57
  4. R�ponses: 4
    Dernier message: 04/02/2008, 19h54
  5. [MFC] Comment r�cup�rer ce message ?
    Par julien.nasser dans le forum MFC
    R�ponses: 15
    Dernier message: 24/05/2006, 11h38

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