诊断神秘的WM_PAINT消息

时间:2016-01-15 12:47:03

标签: c++ windows visual-studio winapi

我有一个神秘的WM_PAINT消息被发送到窗口,我无法理解。我正在使用 -

从我的一些代码发送一条WM_PAINT消息
InvalidateRgn(graphwin_hwnd,NULL,1);
SendMessage(graphwin_hwnd,WM_PAINT,0,0);

但是在执行了在屏幕上绘制一些图形的后续代码之后,调试器指示第二个WM_PAINT消息从某个地方到达。我的问题是,如何诊断导致发送第二条WM_PAINT消息的原因。

编辑: i486已经正确地指出我不需要明确地执行SendMessage()......但令我惊讶的是,即使我评论它,我仍然会得到1神秘的WM_PAINT消息被发送到我的图形窗口的处理程序,所以它还没有解决问题。

编辑:哎呀,我错了,在评论出SendMessage后,似乎我仍然有一个无关的错误搞砸了 - 但我只得到一条WM_PAINT消息......所以问题解决了。

1 个答案:

答案 0 :(得分:1)

您不需要发送WM_PAINT - 它会在Invalidate之后自动发送。致电UpdateWindow强迫它。可能第二个WM_PAINT是因为InvalidateRgn。要对此进行测试,请评论您的SendMessage并检查WM_PAINT。