我有一个神秘的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消息......所以问题解决了。
答案 0 :(得分:1)
您不需要发送WM_PAINT - 它会在Invalidate之后自动发送。致电UpdateWindow
强迫它。可能第二个WM_PAINT是因为InvalidateRgn
。要对此进行测试,请评论您的SendMessage
并检查WM_PAINT。