Share via


最小化されたウィンドウの描画

システムでウィンドウを描画するのではなく、最小化された独自のウィンドウを描画できます。 ほとんどのアプリケーションでは、ウィンドウのウィンドウ クラスを登録するときにクラス アイコンを定義し、ウィンドウが最小化されたときにアイコンが描画されます。 ただし、クラス アイコンを NULL に設定すると、ウィンドウが最小化されるたびに、ウィンドウ プロシージャに WM_PAINT メッセージが送信され、ウィンドウ プロシージャが最小化されたウィンドウに描画できるようになります。

次の例では、ウィンドウ プロシージャは最小化されたウィンドウにstarを描画します。 このプロシージャでは 、IsIconic 関数を使用して、ウィンドウが最小化されるタイミングを決定します。 これにより、ウィンドウが最小化されている場合にのみ、starが描画されます。

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; 

ウィンドウ クラスの RegisterClass 関数を呼び出す前に、WNDCLASS 構造体の hIcon メンバーを NULL に設定することで、クラス アイコンを NULL に設定します。