BOOL RedrawWindow
(
LPCRECT lpRectUpdate = NULL, CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
);
Возвращаемое значение
Отлично от нуля если окно было повторно перерисовано успешно, иначе 0.
Параметры
lpRectUpdate
Укажите на структуру RECT, содержащую координаты прямоугольника модификации. Этот параметр игнорируется, если prgnUpdate содержит допустимый дескриптор области.
prgnUpdate
Идентифицирует область модификации. Если и prgnUpdate и lpRectUpdate NULL вся клиентская область добавлена к области модификации.
flags
Следующие флажки используются, чтобы объявить неверным окно:
- RDW_ERASE - Заставляет окно получать WM_ERASEBKGND сообщение, когда окно повторно окрашено. Флажок RDW_INVALIDATE должен также быть определен иначе RDW_ERASE не имеет никакого эффекта.
- RDW_FRAME - Заставляет любую часть неклиентской области котороя пересекает область модификации, чтобы получить WM_NCPAINT сообщение. Флажок RDW_INVALIDATE должен также быть определен иначе RDW_FRAME не имеет никакого эффекта.
- RDW_INTERNALPAINT - Заставляет WM_PAINT сообщение быть посланным к окну независимо от того, содержит ли окно недопустимую область.
- RDW_INVALIDATE - Объявляют неверным lpRectUpdate, или prgnUpdate (только один не должен быть NULL). Если оба NULL все окно лишено законной силы.
Следующие флажки используются, чтобы проверить правильность окна:
- RDW_NOERASE - Подавляет любую задержку WM_ERASEBKGND сообщения.
- RDW_NOFRAME - Подавляет любую задержку WM_NCPAINT сообщения. Этот флажок должен использоваться с RDW_VALIDATE и обычно используется с RDW_NOCHILDREN. Эта опция должна использоваться состорожностью, поскольку она может предотвращать Закрашивания части части окна.
- RDW_NOINTERNALPAINT - Подавляет любые ждущие обработки внутренние WM_PAINT сообщения. Этот флажок не воздействует на WM_PAINT сообщения, следующие из недопустимых областей.
- RDW_VALIDATE - Проверяет правильность lpRectUpdate, или prgnUpdate (только один должен быть не NULL). Если оба NULL, все окно утверждено. Этот флажок не воздействует на внутренние WM_PAINT сообщения.
Следующее управление флажков, когда перезакрашивание происходит. Закрашивание не выполняется функцией RedrawWindow, если один из этих битов не определен.
- RDW_ERASENOW - Заставляет воздействующиеся окна (как определено RDW_ALLCHILDREN и флажками RDW_NOCHILDREN) получать WM_NCPAINT и WM_ERASEBKGND сообщения, в случае необходимости, перед возвратом функции. WM_PAINT сообщения отсрочены.
- RDW_UPDATENOW - Заставляет воздействующиеся окна (как определено RDW_ALLCHILDREN и флажками RDW_NOCHILDREN) получать WM_NCPAINT, WM_ERASEBKGND, и WM_PAINT сообщения, в случае необходимости, перед возвратом функции.
По умолчанию, окна, на которые воздействует функция RedrawWindow зависят от того, имеет ли определенное окно WS_CLIPCHILDREN стиль. На дочерние окна WS_CLIPCHILDREN не воздействуют. Однако, те окна, которые - не WS_CLIPCHILDREN - объявлены неверными, пока с WS_CLIPCHILDREN окном не сталкиваются. Следующее управление флажков, на которое на окна воздействует функция RedrawWindow:
- RDW_ALLCHILDREN - Включает дочерние окна, в операциях перезакрашивания.
- RDW_NOCHILDREN - Исключает дочерние окна, из операции перезакрашивания.
Замечания
Модифицирует определенный прямоугольник или область в клиентской области данного окна.
Когда метод RedrawWindow используется, чтобы объявить неверным часть рабочего стол, то окно не получает WM_PAINT сообщение. Чтобы повторно красить рабочий стол, приложение должно использовать CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow, или ::RedrawWindow.