我能够根据使用CSliderCtrl :: GetPos的位置移动SliderControl,由程序播放。 (这是我的音乐播放器MFC项目的一部分)。
但我需要在没有任何通知/事件的情况下自动执行此操作....
我想过创建一个在点击播放按钮后会移动滑块的线程。
答案 0 :(得分:3)
您通常希望只有一个线程更新UI(并尽可能少地执行)。
使用辅助线程播放音乐几乎肯定会更好。它可以向UI线程发送消息,UI线程在收到该消息时更新滑块控件位置。
答案 1 :(得分:1)
从主线程更新UI总是好的,而不是添加新的线程来更新UI。更好的是,您可以使用工作线程执行后台任务,并在需要时通过向主线程发送消息来更新UI。
在您的情况下,您可以让工作线程播放音乐并向主线程发送消息以更新滑块位置。
::SendMessage( AfxGetMainWnd()->m_hWnd, Message_Id, ( WPARAM )&String, 0 );
您可以使用API CSliderCtrl :: SetPos()来更新位置。