クライアント領域での描画
BeginPaint 関数と EndPaint 関数を使用して、クライアント領域で図面の準備と完了を行います。 BeginPaint は、クライアント領域での描画に使用されるディスプレイ デバイス コンテキストへのハンドルを返します。 EndPaint は ペイント要求を終了し、デバイス コンテキストを解放します。
次の例では、ウィンドウ プロシージャによってクライアント領域に "Hello, Windows!" というメッセージが書き込まれます。 ウィンドウの作成時に文字列が表示されるようにするために、 WinMain 関数は、ウィンドウを作成して表示した直後に UpdateWindow を呼び出します。 これにより、 WM_PAINT メッセージがウィンドウ プロシージャにすぐに送信されます。
LRESULT APIENTRY WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 0, 0, "Hello, Windows!", 15);
EndPaint(hwnd, &ps);
return 0L;
// Process other messages.
}
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hwnd;
hwnd = CreateWindowEx(
// parameters
);
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
return msg.wParam;
}