Redrawing the Entire Client Area

You can have your application redraw the entire contents of the client area whenever the window changes size by setting the CS_HREDRAW and CS_VREDRAW styles for the window class. Applications that adjust the size of the drawing based on the size of the window use these styles to ensure that they start with a completely empty client area when drawing.

In the following example, the window procedure draws a five-pointed star that fits neatly in the client area. It uses a common DC and must set the mapping mode as well as window and viewport extents each time the WM_PAINT message is processed.

LRESULT APIENTRY WndProc(hwnd, message, wParam, lParam)

HWND hwnd;

UINT message;

WPARAM wParam;

LPARAM lParam;

{

PAINTSTRUCT ps;

HDC hdc;

RECT rc;

POINT aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2};

.

.

.

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

GetClientRect(hwnd, &rc);

SetMapMode(hdc, MM_ANISOTROPIC);

SetWindowExtEx(hdc, 100, 100, NULL);

SetViewportExtEx(hdc, rc.right, rc.bottom, NULL);

Polyline(hdc, aptStar, 6);

EndPaint(hwnd, &ps);

return 0L;

.

.

.

}

int APIENTRY WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)

HINSTANCE hInstance; /* handle of current instance */

HINSTANCE hPrevInstance; /* handle of previous instance */

LPSTR lpCmdLine; /* address of command line */

int nCmdShow; /* show-window type (open/icon) */

{

WNDCLASS wc;

.

.

.

wc.style = CS_HREDRAW | CS_VREDRAW;

wc.lpfnWndProc = (WNDPROC) WndProc;

.

.

.

RegisterClass(&wc);

.

.

.

return msg.wParam;

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database