默认规则是以WM_USER+X(WM_USER--0x7fff)用于窗口级的消息,WM_APP+X(WM_APP--0xbfff)用于进程级的消息.
如果只是希望重绘一下的话,Invalidate();就可以了.
因为WM_PAINT是在窗口有“无效区域”时发出的。
如果我们不把该“无效区域”置为有效,则窗口将收到无穷无尽的WM_PAINT消息。
而BeginPaint函数可以将其置为有效。当然用ValidateRect也可以。
如果我们不也WM_PAINT的消息处理过程,DefWindowProc也会将其“无效区域”置为有效。
但是我还有一个疑问:
当我们在关闭窗口时,弹出一消息框,窗口的确需要重绘。
但是我们如果不将该无效区域置为有效,只会使WM_PAINT消息源源不断。
但应该不会影响消息框的绘制啊。
但是为什么消息框会看不见呢?
不处理,则使用默认处理.
ps包括要画的区域.有了他才知道那里要画啊!
但是我们如果不将该无效区域置为有效,只会使WM_PAINT消息源源不断。
但应该不会影响消息框的绘制啊。
但是为什么消息框会看不见呢?
一直WM_PAINT,不将该无效区域置为有效,则一直没画,没画怎么会显示呢?
调用InvalidateRect或UpdateWindow让客户区无效,这将迫使WINDOWS把WM_PAINT放入应用程序消息队列,从而使得客户区重绘。
把你的pen啦,brush啦,font啦,所有的都用实在变量,别用指针,不小心就会有内存泄漏,大耗资源。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。