Поделиться через


Рисование свернутого окна

Вы можете рисовать собственные свернутые окна, а не рисовать их за вас. Большинство приложений определяют значок класса при регистрации класса окна для окна, а система рисует значок, когда окно свернуто. Однако если для значка класса задано значение 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; 

Для значка класса задается значение NULL , задав члену hIcon структуры WNDCLASSзначение NULL перед вызовом функции RegisterClass для класса окна.