如何从子线程调用windows paint事件

时间:2011-01-13 09:38:14

标签: multithreading visual-studio-2010 visual-c++

如果我错了,请纠正我,因为我是新手。我有一个线程显示从使用CreateWindowEx()功能创建的窗口上的网络摄像头捕获的图像。现在当我执行我的程序时,我可以看到我的绘图代码(在WindowProc()中)从未到达(从子线程调用InvalidateRect()到重绘),使用断点检查。

实际上帧捕获和显示是在线程中完成的,我认为因为它在child threadWindow中位于Main thread,这就是为什么它无法调用paint事件。

你能帮助我吗

1 个答案:

答案 0 :(得分:1)

从子线程调用InvalidateRect()会使窗口重绘。但是WM_PAINT是一个低优先级的消息,因此如果有太多其他活动,窗口可能不会被重绘。您是否尝试过将Sleep()放入处理线程中以使绘画有机会完成?