【发布时间】:2022-11-12 05:23:50
【问题描述】:
我在我的主窗口过程中写了这段代码
case WM_PAINT:
{
if (check > 6)
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
FillRect(hdc, &ps.rcPaint, (HBRUSH) COLOR_GRAYTEXT);
EndPaint(hwnd, &ps);
}
check++;
printf("%d\n", check);
break;
}
我意识到控制台输出是 1 2 3 4 5 6 7 8,这意味着我收到了 WM_PAINT 消息,直到重新绘制窗口。这是为什么?
【问题讨论】:
-
这就是系统的工作方式。每当您的线程空闲并且需要完成绘画时,就会生成 WM_PAINT 消息。一如既往,Raymond has more details。
-
感谢@JonathanPotter 的有用评论。这个 Resmond Chen 小伙子无处不在
标签: winapi