Мне удалось переместить SliderControl в соответствии с положением, используя CSliderCtrl :: GetPos, который воспроизводит программа. (Это часть моего проекта Music Player MFC).
Но мне нужно сделать это автоматически без каких-либо уведомлений / событий ….
Я думал о создании темы, которая будет перемещать слайдер после нажатия на кнопку воспроизведения.
Как правило, вы хотите, чтобы только один поток обновлял пользовательский интерфейс (и делал как можно меньше).
Почти наверняка будет лучше иметь дополнительный поток, воспроизводящий музыку. Он может отправить сообщение в поток пользовательского интерфейса, и поток пользовательского интерфейса обновляет позицию управления ползунком, когда получает это сообщение.
Всегда полезно обновлять пользовательский интерфейс из основного потока, а не добавлять новый поток для обновления пользовательского интерфейса. Лучше выполнять фоновые задачи с помощью рабочего потока и обновлять пользовательский интерфейс, отправляя сообщение в основной поток при необходимости.
В вашем случае вы можете создать рабочий поток для воспроизведения музыки и отправить сообщение в основной поток, чтобы обновить положение ползунка.
::SendMessage( AfxGetMainWnd()->m_hWnd, Message_Id, ( WPARAM )&String, 0 );
Вы можете использовать API CSliderCtrl :: SetPos () для обновления позиции.