Condividi tramite


Disegno di una finestra ridotta a icona

È possibile disegnare le proprie finestre ridotte a icona invece di fare in modo che il sistema li disegnare per voi. La maggior parte delle applicazioni definisce un'icona di classe durante la registrazione della classe finestra per la finestra e il sistema disegna l'icona quando la finestra viene ridotta a icona. Se si imposta l'icona della classe su NULL, tuttavia, il sistema invia un messaggio WM_PAINT alla routine della finestra ogni volta che la finestra viene ridotta a icona, consentendo alla routine della finestra di disegnare nella finestra ridotta a icona.

Nell'esempio seguente la routine della finestra disegna un star nella finestra ridotta a icona. La procedura usa la funzione IsIconic per determinare quando la finestra è ridotta a icona. Ciò garantisce che il star venga disegnato solo quando la finestra viene ridotta a icona.

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; 

Impostare l'icona della classe su NULL impostando il membro hIcon della struttura WNDCLASS su NULL prima di chiamare la funzione RegisterClass per la classe window.