检测窗口是否已完成绘图并在屏幕上显示(WINAPI)

Bra*_*don 1 c++ winapi

我有个问题.我在一个线程中创建了一个Window.我创建了一个互斥锁,这样就不能通过函数检索Window句柄,直到它不为0.

我还使用了while循环来确保句柄不为0.

事实上,句柄永远不会为0,因为CreateWindowEx会在窗口显示在屏幕上之前返回窗口的句柄.

所以我的互斥锁和while循环失败了.我需要知道窗口何时完全显示并完成了它必须做的任何事情,所以我可以从另一个线程中绘制它.

句柄不是0,DC不是0.但是当我画画时,它什么都没画.如果我在CreateWindowEx和ShowWindow之后立即放置Sleep(100),则会显示窗口并正确地绘制图像.我也尝试循环IsWindowVisisble(WindowHandle).那也失败了.

我不想睡​​觉(100),我该怎么办?

Jer*_*fin 7

不要试图从另一个线程上绘制窗口.

将一些数据发布到窗口并让它根据该数据绘制自己.无论如何,它需要准备好自己绘制以响应WM_PAINT,并且在任何情况下都需要任何必要的数据.跳过篮球以不同方式进行初始绘图将增加大量工作并且基本上没有任何回报.