Функция InvalidateRect добавляет прямоугольник к обновляемому региону заданного окна. Обновляемый регион представляет часть рабочей области окна, которая должна быть перерисована.
BOOL InvalidateRect( HWND hWnd, // дескриптор окна CONST RECT* lpRect, // координаты прямоугольника BOOL bErase // состояние очистки ); |
[in] Дескриптор окна, обновляемый регион которого изменился. Если этот параметр - NULL, система делает недействительными и перерисовывает все окна, и отправляет сообщения WM_ERASEBKGND и WM_NCPAINT оконной процедуре перед тем, как возвращает значения функцией.
lpRect[in] Указатель на структуру RECT, содержащую в себе координаты рабочей области прямоугольника, который будет добавлен к обновляемому региону. Если этот параметр - NULL, вся рабочая область добавляется к обновляемому региону.
bErase[in] Устанавливает, должен ли фон внутри обновляемого региона быть стерт, когда обновляемый регион обрабатывается. Если этот параметр - TRUE, то фон стирается, когда вызывается функция BeginPaint. Если этот параметр - FALSE, фон остается неизменным.
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Ставшие недействительными области накапливаются в обновляемом регионе до тех пор, пока регион не будет обработан при появлении следующего сообщения WM_PAINT или до тех пор, пока у региона не будет проверена достоверность при помощи использования функции ValidateRect или ValidateRgn.
Система отправляет сообщение WM_PAINT окну всякий раз, когда его обновляемый регион не пуст и нет никаких других сообщений в очереди приложения для этого окна.
Если параметр bErase - TRUE для любой части обновляемого региона, фон стирается во всем регионе, а не только в заданной его части.
Пример смотри в статье Признание недействительной рабочей области.
Обзор Окрашивание и рисование, Функции окрашивания и рисования, BeginPaint, InvalidateRgn, RECT, ValidateRect, ValidateRgn, WM_ERASEBKGND, WM_NCPAINT, WM_PAINT
Размещение и совместимость InvalidateRect |
||
| К | 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 |
| е | ||
| р | ||
| Используемая библиотека | User32.lib | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Winuser.h | |
| - включено в | Windows.h | |
| Unicode | - | |
| Замечания по платформе | Не имеется | |