CWnd::RedrawWindow
Обновляет указанный прямоугольник или область в клиентскую область данного окна.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
);
Параметры
lpRectUpdate
Указывает на RECT составляющих содержать координаты прямоугольника обновления. Этот параметр игнорировать, если prgnUpdate содержит допустимый дескриптор области.prgnUpdate
Определяет область обновления. Если и prgnUpdate и lpRectUpdateNULL, то вся клиентскую область добавлена в область обновления.flags
Следующие флаги используются, чтобы сделать недействительным окно:RDW_ERASE Вызывает окно получить сообщение WM_ERASEBKGND, если окно обновлено. Пометить RDW_INVALIDATE необходимо также задать; в противном случае RDW_ERASE не влияет.
RDW_FRAME Вызывает любой части неклиентской области окна, intersect область обновления для получения сообщения 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. Дочерние окна windows WS_CLIPCHILDREN не затрагиваются. Однако эти окна, которые не являются windows WS_CLIPCHILDREN рекурсивно проверены или недействительны до тех пор, пока окно WS_CLIPCHILDREN не обнаружено. Далее приведен элемент управления флагов, окна влияют на функцией RedrawWindow:
RDW_ALLCHILDREN Содержит дочерние окна, при наличии таковой, в операции обновления.
RDW_NOCHILDREN Исключает дочерние окна, если любой из операций обновления.
Возвращаемое значение
Если при перерисовке окно было успешно; в противном случае – значение 0.
Заметки
Если функция-член RedrawWindow используется, чтобы сделать недействительными часть окон рабочего стола, то окно не получает сообщение WM_PAINT. Чтобы обновить рабочий стол, приложение должно использовать CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow или RedrawWindow
Требования
Header: afxwin.h