InvalidateRect()関数


BOOL InvalidateRect(
 HWND hWnd,
 CONST RECT* lpRect,
 BOOL bErase
);


hWnd更新リージョンが変更されたウィンドウを識別する。
lpRect更新リージョンに追加される長方形のクライアント座標を含むRECT構造体を指すポインタ。
NULLを設定すると、クライアント領域全体を更新リージョンに追加する。
bErase更新リージョンを処理する時に更新リージョンの背景を消去するかどうかを指定する。
TRUEならば、BeginPaint関数が呼び出された時に背景は消去される。
FALSEならば、背景はそのまま残る。


ウィンドウに「無効領域」を追加します。
ウィンドウに無効領域が出来ると、システムはWM_PAINTを送って再描画を促します。
Windows > グラフィック | comments (0) | trackbacks (0)

WM_CREATEメッセージ

CreateWindow()関数を使ってウィンドウを生成する時、
ウィンドウプロシージャにはWM_CREATEメッセージが送信されます。
WM_CREATEメッセージはウィンドウが表示される前に、ウィンドウの生成を続けるかどうかを問い合わせています。
WM_CREATEメッセージに対して0を返せばウィンドウの生成を続け、
-1を返せばウィンドウを破棄することを表します。
ウィンドウがWM_CREATEメッセージによって破棄された場合、
CreateWindow()関数は失敗しNULLを返します。
Windows > ウィンドウプロシージャ | comments (0) | trackbacks (0)

ウィンドウの破棄

ウィンドウの終了ボタンが押されるとWM_CLOSEメッセージが発行される。

DefWindowProc()関数がこのメッセージを受け取るとDestroyWindow()関数を用いてウィンドウを破棄する。

DestroyWindow()関数によってウィンドウが破棄されると
WM_DESTROYメッセージが送られる。

ウィンドウの破棄がWM_DESTROYメッセージによって通知されたら
メッセージループから抜け出してアプリケーションを終了させる為に
PostQuitMessage()関数を呼び出して
アプリケーションの終了を通知する。

PostQuitMessage()関数が呼び出されるとWM_QUITメッセージが
メッセージキューにポストされる。

GetMessage()関数はWM_QUITメッセージを受け取ると0を返すので
それを利用してメッセージループを抜けるようにする。
Windows > ウィンドウの破棄 | comments (0) | trackbacks (0)