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


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

Вы можете рисовать свои собственные свернутые окна вместо того, чтобы система рисовала их за вас. Большинство приложений задают значок класса при регистрации окна, а система автоматически отображает этот значок, когда окно свернуто. Если вы установите значок класса на NULL, система отправит сообщение WM_PAINT в обработчик окон, когда окно будет свернуто, что позволит ему рисовать в свернутом окне.

В следующем примере обработчик окна рисует звезду в редуцированном окне. Процедура использует функцию IsIconic, чтобы определить, когда окно минимизировано. Это обеспечивает, что звезда рисуется только в том случае, если окно свернуто.

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 для класса окон, установите значок класса на NULL, задав для члена hIcon структуры WNDCLASS значение NULL.