Bonjour,
j'ai un petit souci sur l'impl�mentation d'un CSliderCtrl dans un lecteur multim�dia que je suis en train de d�velopper. En effet, je souhaite que ce slider se d�place automatiquement pendant la lecture d'un fichier pour indiquer o� en est la progression. Pour ce point l�, pas de probl�me, ma fonction OnTimer marche nickel :
La o� cela marche moins bien, c'est lorsque j'impl�mente la m�thode qui permet de changer la position de lecture en manipulant le slider:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 //timer se déclenchant toutes les secs void CMainFrame::OnTimer(UINT nIDEvent){ sliderCtrl = reinterpret_cast<CSliderCtrl *>(this->m_wndDlgBar.GetDlgItem(IDC_SLIDER1)); int length = m_fileDuration/10000000;//pr mettre en secondes int pasduneunite = length/100; sliderCtrl->SetRange(0,length); LONGLONG current; m_graph.GetPos(¤t); long cur = (long)current/10000000; sliderCtrl->SetPos(cur); }
Ce qui se passe, c'est que lorsque je bouge le slider, celui-ci se remet � la position de lecture avant que je l'aie boug�, ou sinon celui ci prend parfois une position incorrecte.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 void CMainFrame::OnNMReleasedcaptureSlider1(NMHDR *pNMHDR, LRESULT *pResult) { sliderCtrl = reinterpret_cast<CSliderCtrl *>(this->m_wndDlgBar.GetDlgItem(IDC_SLIDER1)); int length = m_fileDuration/10000000;//met en secondes int tick = length/100;//déplacement d'une unité du slider vaut: int n = sliderCtrl->GetPos(); m_graph.SetPos(n*tick*10000000); }
Quelqu'un a t-il une id�e?
Merci !
Partager