等待定义时间的窗口消息

Squ*_*all 2 windows winapi loops window timer

我正在用winapi编程.如何在指定时间内等待消息?如果没有消息,我可以做另一项任务.我无法使用Sleep,因为窗口回调程序将被延迟.

while (true){
    ...//wait a message for 30 miliseconds
    GetMessage(&message, hwnd, 0, 0) ) or PeekMessage(&message, hwnd, 0, 0, PM_REMOVE)
    ...
    if ( no_message ){
        call_a_function();
    } else {
        if (finish)
            break;
        TranslateMessage(&message);
        DispatchMessage(&message);
        ...//set to wait 30 minus elapsed time 
    }
}
Run Code Online (Sandbox Code Playgroud)