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


Функция InvalidateRect (winuser.h)

Функция InvalidateRect добавляет прямоугольник в область обновления указанного окна. Область обновления представляет часть клиентской области окна, которую необходимо перерисовыть.

Синтаксис

BOOL InvalidateRect(
  [in] HWND       hWnd,
  [in] const RECT *lpRect,
  [in] BOOL       bErase
);

Параметры

[in] hWnd

Дескриптор для окна, область обновления которого была изменена. Если этот параметр имеет значение NULL, система делает недействительными и перерисовывает все окна, а не только окна для этого приложения, и отправляет сообщения WM_ERASEBKGND и WM_NCPAINT перед возвратом функции. Не рекомендуется задавать для этого параметра значение NULL .

[in] lpRect

Указатель на структуру RECT , содержащую клиентские координаты прямоугольника, добавляемого в область обновления. Если этот параметр имеет значение NULL, в регион обновления добавляется вся клиентская область.

[in] bErase

Указывает, следует ли удалять фон в регионе обновления при обработке области обновления. Если этот параметр имеет значение TRUE, фон удаляется при вызове функции BeginPaint . Если этот параметр имеет значение FALSE, фон остается неизменным.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Недействительные области накапливаются в области обновления до тех пор, пока регион не будет обработан при следующем сообщении WM_PAINT или пока регион не будет проверен с помощью функции ValidateRect или ValidateRgn .

Система отправляет WM_PAINT сообщение в окно всякий раз, когда его область обновления не пуста и в очереди приложений для этого окна нет других сообщений.

Если параметр bErase имеет значение TRUE для любой части области обновления, фон удаляется во всем регионе, а не только в указанной части.

Примеры

Пример см. в разделе О недопустимости клиентской области.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-draw-l1-1-0 (появилось в Windows 8)

См. также раздел

BeginPaint

InvalidateRgn

Функции рисования и рисования

Общие сведения о рисовании и рисовании

RECT

ValidateRect

ValidateRgn

WM_ERASEBKGND

WM_NCPAINT

WM_PAINT