Volver a dibujar el área de cliente completa
Puede hacer que la aplicación vuelva a dibujar todo el contenido del área cliente cada vez que la ventana cambie el tamaño estableciendo los estilos CS_HREDRAW y CS_VREDRAW para la clase de ventana. Las aplicaciones que ajustan el tamaño del dibujo en función del tamaño de la ventana usan estos estilos para asegurarse de que comienzan con un área de cliente completamente vacía al dibujar.
En el ejemplo siguiente, el procedimiento de ventana dibuja un star de cinco puntas que encaja perfectamente en el área de cliente. Usa un contexto de dispositivo común y debe establecer el modo de asignación, así como las extensiones de ventana y ventanilla cada vez que se procesa el mensaje de WM_PAINT .
LRESULT APIENTRY WndProc(HWMD 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 hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc;
.
.
.
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
.
.
.
RegisterClass(&wc);
.
.
.
return msg.wParam;
}