我是天生的新手.现在,我按下了鼠标左键,它有一个执行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); } } }