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


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

Назад в оглавление
На главную страницу
Переведено 05.02.2011 16:38 ©Copyright V. Sokovikov
Hosted by uCoz