不多說,上代碼
MoveWindow(hWnd, 1000, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 66, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 81, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 91, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 99, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 106, 400, 320, 104, 0);
//Sleep(83);
MoveWindow(hWnd, 1000 - 111, 400, 320, 104, 0);
我準備用1秒的時間(30fps),也就是約等于83毫秒一幀的速率播放這影片,
這是前面幾幀,后面還剩的一些就不展示了.相信這個代碼的問題一看就出來了,Sleep把表單阻塞了,那最后的結果就是影片完全沒有播放,延遲后直接在(889,400)的地方顯示了,這問題如何解決呢?
不要用AnimateWindow,謝謝
uj5u.com熱心網友回復:
等待時派發訊息
void _Sleep_(UINT Delay_ms)
{
DWORD dwTick = GetTickCount() + Delay_ms;
while(GetTickCount() < dwTick)
{
MSG msg;
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Sleep(0);
}
}
uj5u.com熱心網友回復:
是可以了,不過請問怎么實作在視窗創建時播放呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/281550.html
標籤:界面
下一篇:CbitMap拷貝影像出錯
