在UI中加入一个播放的标识,也就是UI中进度条被触发的时候(没播放的时候,UI中进度条是不被绘制的),设置为true,播放停止的时候为false。
那这样我们的定时器事件就好办多了:
VOID CALLBACK TimeProc(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTimer) { if (g_dui_frame_wnd->GetIsPlayStatus()) { // 这里调用增加进度条数值 g_dui_frame_wnd->OnPosChanged(hWnd, 0, 0); } }
在主循环创建窗口完毕之后,马上设定定时器:
int timer_sign = 1; SetTimer(0, timer_sign, 1000, TimeProc);
在OnPosChanged函数中,让进度条的值+1即可
LRESULT CDuiFrameWnd::OnPosChanged(HWND hwnd, WPARAM wParam, LPARAM lParam ) { m_pSliderPlay->SetValue(m_pSliderPlay->GetValue() + 1); return TRUE; }
测试效果还不错,点击进度提进行seek之后,也能继续+1
原文地址:http://blog.csdn.net/zengraoli/article/details/39028049