Функция RedrawWindow (winuser.h)
Функция RedrawWindow обновляет указанный прямоугольник или область в клиентской области окна.
Синтаксис
BOOL RedrawWindow(
[in] HWND hWnd,
[in] const RECT *lprcUpdate,
[in] HRGN hrgnUpdate,
[in] UINT flags
);
Параметры
[in] hWnd
Дескриптор для перерисовки окна. Если этот параметр имеет значение NULL, окно рабочего стола обновляется.
[in] lprcUpdate
Указатель на структуру RECT , содержащую координаты (в единицах устройства) прямоугольника обновления. Этот параметр игнорируется, если параметр hrgnUpdate определяет регион.
[in] hrgnUpdate
Дескриптор области обновления. Если параметры hrgnUpdate и lprcUpdate имеют значение NULL, в регион обновления добавляется вся клиентская область.
[in] flags
Один или несколько флагов перерисовки. Этот параметр можно использовать для отмены или проверки окна, управления перерисовкой и управления тем, на какие окна влияет RedrawWindow.
Следующие флаги используются для того, чтобы сделать окно недействительным.
Флаг (недействительность) | Описание |
---|---|
|
При перерисовки окно получает сообщение WM_ERASEBKGND . Также необходимо указать флаг RDW_INVALIDATE; В противном случае RDW_ERASE не оказывает никакого влияния. |
|
Приводит к тому, что любая часть неклиентной области окна, пересекающая область обновления, получает сообщение WM_NCPAINT . Также необходимо указать флаг RDW_INVALIDATE; В противном случае RDW_FRAME не оказывает никакого влияния. Сообщение WM_NCPAINT обычно не отправляется во время выполнения RedrawWindow , если не указано RDW_UPDATENOW или RDW_ERASENOW. |
|
Вызывает отправку сообщения WM_PAINT в окно независимо от того, является ли какая-либо часть окна недопустимой. |
|
Делает недействительными lprcUpdate или hrgnUpdate (только один может иметь значение, отличное от NULL). Если оба имеют значение NULL, все окно становится недействительным. |
Для проверки окна используются следующие флаги.
Флаг (проверка) | Описание |
---|---|
|
Подавляет все ожидающие сообщения WM_ERASEBKGND . |
|
Подавляет все ожидающие сообщения WM_NCPAINT . Этот флаг должен использоваться с RDW_VALIDATE и обычно используется с RDW_NOCHILDREN. RDW_NOFRAME следует использовать с осторожностью, так как это может привести к неправильной закрашивать части окна. |
|
Подавляет все ожидающие внутренние сообщения WM_PAINT . Этот флаг не влияет на WM_PAINT сообщений, полученных из области обновления, отличной от NULL . |
|
Проверяет lprcUpdate или hrgnUpdate (только один может иметь значение, отличное от NULL). Если оба имеют значение NULL, проверяется все окно. Этот флаг не влияет на внутренние сообщения WM_PAINT . |
При перерисовывание выполняется следующий элемент управления флагами. RedrawWindow не будет перекрашивается, если не указан один из этих флагов.
Flag | Описание |
---|---|
|
Заставляет затронутые окна (как указано флагами RDW_ALLCHILDREN и RDW_NOCHILDREN) получать WM_NCPAINT и при необходимости WM_ERASEBKGND сообщения до возврата функции. WM_PAINT сообщения принимаются в обычное время. |
|
Приводит к тому, что затронутые окна (как указано флагами RDW_ALLCHILDREN и RDW_NOCHILDREN) при необходимости получают сообщения WM_NCPAINT, WM_ERASEBKGND и WM_PAINT до возврата функции. |
По умолчанию окна, на которые влияет RedrawWindow , зависят от того, имеет ли указанное окно стиль WS_CLIPCHILDREN. Дочерние окна, которые не являются WS_CLIPCHILDREN стилем, не затрагиваются; Окна, не WS_CLIPCHILDREN, рекурсивно проверяются или становятся недействительными до тех пор, пока не появится окно WS_CLIPCHILDREN. Следующие флаги определяют, на какие окна влияет функция RedrawWindow .
Flag | Описание |
---|---|
|
Включает дочерние окна, если таковые имеются, в операцию перерисовки. |
|
Исключает дочерние окна, если таковые есть, из операции перерисовки. |
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение.
Комментарии
Если redrawWindow используется для того, чтобы сделать часть окна рабочего стола недействительной, окно рабочего стола не получает сообщение WM_PAINT . Чтобы перекрасить рабочий стол, приложение использует флаг RDW_ERASE для создания сообщения WM_ERASEBKGND .
Требования
Минимальная версия клиента | 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) |