Сообщение WM_NCPAINT отправляется окну тогда, когда должна краситься его рамка.
Окно получает это сообщение через свою функцию WindowProc.
LRESULT CALLBACK WindowProc( HWND hwnd, // дескриптор окна UINT uMsg, // WM_NCPAINT WPARAM wParam, // дескриптор обновляемого региона (HRGN) LPARAM lParam // не используется ); |
Дескриптор региона обновления окна. Регион обновления обрезается по рамке окна. Когда wParam = 1, должна обновиться вся рамка окна.
lParamЭтот параметр не используется.
Приложение возвращает нуль, если оно обрабатывает это сообщение.
Функция DefWindowProc красит рамку окна.
Приложение может перехватить сообщение WM_NCPAINT и окрасить свою собственную рамку пользовательского окна. Регион отсечения для окна является всегда прямоугольным, даже тогда, когда форма рамки изменена.
Значение wParam может быть передано в функцию GetDCEx как в примере ниже.
case WM_NCPAINT: { HDC hdc; hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN); // Рисуем в этом контексте устройства (DC) ReleaseDC(hwnd, hdc); } |
Обзор Окрашивание и рисование, Сообщения окрашивания и рисования, DefWindowProc, GetWindowDC, WM_PAINT, GetDCEx
Размещение и совместимость WM_NCPAINT |
||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да версии 3.1 и выше |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да версии 3.1 и выше |
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | - | |
Замечания по платформе | Не имеется |