如何在MFC中创建一个线程,以便相对于正在播放的音频文件移动滑块控件?

时间:2015-06-03 21:38:22

标签: c++ winapi mfc audio-player

我能够根据使用CSliderCtrl :: GetPos的位置移动SliderControl,由程序播放。 (这是我的音乐播放器MFC项目的一部分)。

但我需要在没有任何通知/事件的情况下自动执行此操作....

我想过创建一个在点击播放按钮后会移动滑块的线程。

2 个答案:

答案 0 :(得分:3)

您通常希望只有一个线程更新UI(并尽可能少地执行)。

使用辅助线程播放音乐几乎肯定会更好。它可以向UI线程发送消息,UI线程在收到该消息时更新滑块控件位置。

答案 1 :(得分:1)

从主线程更新UI总是好的,而不是添加新的线程来更新UI。更好的是,您可以使用工作线程执行后台任务,并在需要时通过向主线程发送消息来更新UI。

在您的情况下,您可以让工作线程播放音乐并向主线程发送消息以更新滑块位置。

::SendMessage( AfxGetMainWnd()->m_hWnd, Message_Id, ( WPARAM )&String, 0 );

您可以使用API​​ CSliderCtrl :: SetPos()来更新位置。