DoEvents等效于C?

前端之家收集整理的这篇文章主要介绍了DoEvents等效于C?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是天生的新手.现在,我按下了鼠标左键,它有一个执行InvalidateRect的for循环并绘制一个矩形,并在每次迭代时按照框大小递增X.但是,C在绘制方面比C#更快更有效率,它可以立即绘制所有这些内容.我想要的是它使矩形无效,显示矩形,等待50ms,然后继续循环.我试过睡眠(50),但它仍然等到绘画完成后再显示结果.我也尝试过PeekMessage,但它没有改变任何东西.
任何帮助,将不胜感激.谢谢

解决方法

DoEvents基本上翻译为:
void DoEvents()
{
    MSG msg;
    BOOL result;

    while ( ::PeekMessage(&msg,NULL,PM_NOREMOVE ) )
    {
        result = ::GetMessage(&msg,0);
        if (result == 0) // WM_QUIT
        {                
            ::PostQuitMessage(msg.wParam);
            break;
        }
        else if (result == -1)
        {
             // Handle errors/exit application,etc.
        }
        else 
        {
            ::TranslateMessage(&msg);
            :: DispatchMessage(&msg);
        }
    }
}

猜你在找的C&C++相关文章