Bonjour,
J'ai un ptit soucis, je suis en train de développer un ptit lecteur audio avec VS 2005 et les MFC. Et mon soucis, je vous décris la situation.
J'ai un slider qui décris l'avancée du temps dans le morceau joué (un "Seeker") et qui permet d'aller à un point précis dans la chanson en déplaçant le slider. J'ai aussi un thread qui va demander la remise à jour de la position de ce slider toutes les secondes. Et donc mon soucis, c'est que le thread pour l'instant est prioritaire sur l'utilisateur.
Oui, car je déplace le slider à la main, si je mets plus d'une seconde à le déplacer, bah il va se mettre à la position n+1, parce que le thread lui aura demander de se remettre à jour. C'est assez gênant, si l'utilisateur veux avancer dans la chanson il doit se dépêcher ^^
Alors ce que je pensais faire, c'est mettre un booléen qui serait vrai dès l'instant où l'utilisateur à commencer à déplacer le slider ou même dès que le bouton souris gauche est enfoncé, et qui serait faux dès que j'ai relaché le bouton (ReleasedCapture). Et vérifier l'état du booléen avant de faire ma remise à jour de la position ou non.
Sauf que là j'arrive pas à capturer l'événement déplacement du slider ou bouton gauche enfoncé sur ce slider, j'ai essayé plein de constantes en utilisant ça :
Mais en vain
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ON_NOTIFY( /* par exemple */ NM_LDOWN, IDC_SONG_SEEK, &CLecteurAudioDlg::OnNMLDownSongSeek)
Quelqu'un aurait-il une idée ?
J'ai vu sur un post avec une autre problématique que la solution était de redéfinir une nouvelle classe CSliderCtrl pour capter certains messages, est-ce que je devrais faire un truc similaire ici ?
Merci d'avance
Partager