绘制最小化的窗口

【勇芳软件工作室】汉化HomePreviousNext

您可以绘制自己的最小化窗口,而不是让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。