您可以绘制自己的最小化窗口,而不是让Windows为您绘制。大多数应用程序在为窗口注册窗口类时定义一个类图标,Windows在窗口最小化时绘制图标。但是,如果将类图标设置为NULL,则Windows会在窗口最小化时向窗口过程发送WM_PAINT消息,从而使窗口过程能够绘制在最小化的窗口中。
在以下示例中,窗口过程在最小化窗口中绘制一个星形。该过程使用IsIconic函数来确定窗口何时被最小化。这样可确保仅当窗口最小化时才能绘制星。
POINT aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2};
.
.
.
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
/ *确定窗口是否最小化。*/
if(IsIconic(hwnd)){
GetClientRect(hwnd, &rc);
SetMapMode(hdc, MM_ANISOTROPIC);
SetWindowExtEx(hdc, 100, 100, NULL);
SetViewportExtEx(hdc, rc.right, rc.bottom, NULL);
Polyline(hdc, aptStar, 6);
} else {
TextOut(hdc, 0,0, "Hello, Windows!", 15);
}
EndPaint(hwnd, &ps);
return 0L;
通过将惠康结构的惠康成员设置为NULL,您可以在为窗口类调用RegisterClass函数之前将类图标设置为NULL。