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


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

См. также

Ссылки

Класс CWnd

Диаграмма иерархии