当用户从窗口菜单中选择最小化命令或应用程序调用{??989796010}函数并指定一个值(如SW_MINIMIZE)时,Windows会将应用程序的主窗口(重叠样式)缩小到最小化窗口。通过减少应用程序在更新其主窗口时必须执行的工作量来最小化窗口可以加快系统性能。
对于典型的应用程序,Windows在窗口最小化时绘制一个称为类图标的图标,并使用窗口名称标记图标。类图标,表示应用程序的静态图像,由应用程序注册窗口类时指定。在致电RegisterClass之前,应用程序将类图标的句柄分配给WNDCLASS 惠康成员。应用程序可以使用LoadIcon函数来检索图标句柄。
在绘制类图标之前,Windows会向窗口过程发送WM_ICONERASEBKGND消息,使应用程序可以通过为图标设置最佳背景颜色来准备绘制图标的背景。这对于将图标与当前背景颜色组合在一起的应用程序非常有用。如果应用程序处理消息,它应该使用消息提供的显示DC来绘制背景(【wParam中】参数包含显示DC的句柄)。如果应用程序不处理WM_ICONERASEBKGND消息,则应将消息传递给DefWindowProc;该函数使用当前桌面颜色和图案填充图标区域。发送WM_ICONERASEBKGND消息后,Windows会向窗口过程发送WM_PAINTICON消息。该应用程序应立即将此内部消息转发到DefWindowProc.
Windows不要求窗口类有类图标。如果应用程序将WNDCLASS成员WNDCLASS设置为NULL,则不会定义类图标。在这种情况下,只要窗口必须绘制图标背景,Windows就会将WM_ERASEBKGND消息(而不是WM_ICONERASEBKGND)发送到该类的窗口。Windows然后发送WM_PAINT消息,并且应用程序绘制代表最小化窗口的图标或其他图像。在这种情况下,应用程序必须确定窗口何时被最小化并相应地绘制。它可以通过调用IsIconic功能来实现。如果函数返回TRUE,则窗口最小化。如果应用程序没有类图标,并且无法处理WM_ERASEBKGND和WM_PAINT,则Windows为应用程序图标保留的区域将包含以前在屏幕上的任何内容。