Compartir a través de


Dibujar una ventana minimizada

Puede dibujar sus propias ventanas minimizadas en lugar de hacer que el sistema los dibuje por usted. La mayoría de las aplicaciones definen un icono de clase al registrar la clase de ventana para la ventana y el sistema dibuja el icono cuando se minimiza la ventana. Sin embargo, si establece el icono de clase en NULL, el sistema envía un mensaje de WM_PAINT al procedimiento de ventana siempre que se minimice la ventana, lo que permite que el procedimiento de ventana se dibuje en la ventana minimizada.

En el ejemplo siguiente, el procedimiento de ventana dibuja un star en la ventana minimizada. El procedimiento usa la función IsIconic para determinar cuándo se minimiza la ventana. Esto garantiza que el star solo se dibuja cuando se minimiza la ventana.

POINT aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2}; 
 
  . 
  . 
  . 
 
case WM_PAINT: 
    hdc = BeginPaint(hwnd, &ps); 
 
    // Determine whether the window is minimized.  
 
    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; 

Establezca el icono de clase en NULL estableciendo el miembro hIcon de la estructura WNDCLASS en NULL antes de llamar a la función RegisterClass para la clase de ventana.