A teljes ügyfélterület újrarajzolása
Beállíthatja, hogy az alkalmazás újrarajzozza az ügyfélterület teljes tartalmát, amikor az ablak mérete megváltozik, az ablakosztály CS_HREDRAW és CS_VREDRAW stílusának beállításával. Azok az alkalmazások, amelyek az ablak mérete alapján módosítják a rajz méretét, ezekkel a stílusokkal biztosítják, hogy a rajz során teljesen üres ügyfélterülettel kezdődjenek.
Az alábbi példában az ablakeljárás egy ötágú csillagot rajzol, amely jól illeszkedik az ügyfélterületre. Általános eszközkörnyezetet használ, és minden egyes WM_PAINT üzenet feldolgozásakor meg kell adnia a leképezési módot, valamint az ablak- és megtekintési kiterjedést.
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;
}