WM_PAINT = &HF

機能
ウィンドウのクライアント領域を再描画する必要があるときに発行される
wParam
デフォルトのデバイスコンテキストを使うときは0(通常0)
一部のコモンコントロールでは
デバイスコンテキストのハンドルを設定する必要がある。
lParam
常に0
戻り値
0を返す
備考
Visual Basicではこのメッセージを受け取るとPaintイベントを発生させる。

このメッセージはUpdateWindow()関数RedrawWindow()関数が呼び出されたとき
またはアプリケーションがGetMessage()関数PeekMessage()関数を使用して
このメッセージを取得した場合にDispatchMessage()関数から送られる。

DispatchMessage()関数はアプリケーションのメッセージキューに
他のメッセージはないときにこのメッセージを送る。

RDW_INTERNALPAINTフラグをセットしてRedrawWindow()関数を呼び出した結果
としてウィンドウが内部描画メッセージを受け取ることがある。
このような時、ウィンドウには更新リージョンがないこともある。
アプリケーションはGetUpdateRect()関数を使用してウィンドウに更新領域が
あるかどうか判断しなければならない。
GetUpdateRect()関数が0を返したときは、アプリケーションから
BeginPaint()関数EndPaint()関数を呼び出してはいけない。

このメッセージは、領域が無効化されたとき、およびRDW_INTERNALPAINTフラグを
セットしてRedrawWindow()関数を呼び出したときに、発生することがある。
このためアプリケーションは、このメッセージの内部データの構造体を参照して
必要とされる内部の再描画や更新をチェックしなければならない。

内部WM_PAINTメッセージはWindowsから1度だけ送られる。GetMessage()関数PeekMessage()関数から内部WM_PAINTメッセージが返された後や、内部WM_PAINT
メッセージがUpdateWindow()関数からウィンドウに送られた後は、ウィンドウが
無効になるか、RDW_INTERNALPAINTフラッグをセットしてRedrawWindow()関数が
再び呼び出されるまで、それ以上このメッセージが送られたり
ポストされることはない。
参照
BeginPaint, DispatchMessage,EndPaint, GetMessage, PeekMessage,
RedrawWindow, UpdateWindow