默認規(guī)則是以WM_USER+X(WM_USER--0x7fff)用于窗口級的消息,WM_APP+X(WM_APP--0xbfff)用于進程級的消息.
如果只是希望重繪一下的話,Invalidate();就可以了.
因為WM_PAINT是在窗口有“無效區(qū)域”時發(fā)出的。
如果我們不把該“無效區(qū)域”置為有效,則窗口將收到無窮無盡的WM_PAINT消息。
而BeginPaint函數(shù)可以將其置為有效。當然用ValidateRect也可以。
如果我們不也WM_PAINT的消息處理過程,DefWindowProc也會將其“無效區(qū)域”置為有效。
但是我還有一個疑問:
當我們在關閉窗口時,彈出一消息框,窗口的確需要重繪。
但是我們如果不將該無效區(qū)域置為有效,只會使WM_PAINT消息源源不斷。
但應該不會影響消息框的繪制啊。
但是為什么消息框會看不見呢?
不處理,則使用默認處理.
ps包括要畫的區(qū)域.有了他才知道那里要畫啊!
但是我們如果不將該無效區(qū)域置為有效,只會使WM_PAINT消息源源不斷。
但應該不會影響消息框的繪制啊。
但是為什么消息框會看不見呢?
一直WM_PAINT,不將該無效區(qū)域置為有效,則一直沒畫,沒畫怎么會顯示呢?
調用InvalidateRect或UpdateWindow讓客戶區(qū)無效,這將迫使WINDOWS把WM_PAINT放入應用程序消息隊列,從而使得客戶區(qū)重繪。
把你的pen啦,brush啦,font啦,所有的都用實在變量,別用指針,不小心就會有內存泄漏,大耗資源。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。