Функция LockWindowUpdate запрещает или делает возможным рисование в заданном окне. За один раз, только одно окно может быть блокировано.
BOOL LockWindowUpdate( HWND hWndLock // дескриптор окна ); |
[in] Определяет окно, в котором рисование должно быть отключено. Если этот параметр - NULL, рисование в заблокированном окне включено.
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль, что указывает на то, что произошла ошибка или уже заблокировано другое окно.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Назначение функции LockWindowUpdate - это разрешить, при технологии "перетаскивание" (drag and drop), ответную реакцию, которая будет при рисовании поверх окна без вмешательства непосредственно от окна. Замысел состоит в том, что окно блокируется, когда ответная реакция - рисование и деблокируется, когда ответная реакция завершается. LockWindowUpdate не предназначается для универсальной блокировки перерисовки окна. Используйте сообщение WM_SETREDRAW, чтобы запретить перерисовку конкретного окна.
Если приложение с блокированным окном (или каким-либо блокированным дочерним окном) вызывает функцию GetDC, GetDCEx или BeginPaint, возвращение значения вызванной функцией - контекст устройства с видимым регионом, который пуст. Это будет происходить до тех пор, пока приложение не разблокирует окно при помощи вызова LockWindowUpdate, устанавливая значение NULL для параметра hWndLock.
Если приложение пытается рисовать внутри блокированного окна, система делает запись размера предпринятой операции в ограничивающем прямоугольнике. Когда окно разблокировано, система делает область недействительной внутри этого ограничивающего прямоугольника, вынуждая возможное сообщение WM_PAINT отправиться сначала блокированному окну и его дочерним окнам. Если не происходит никакого рисования в ходе обновления окна, оно блокируется и никакая область не делается недействительной.
Функция LockWindowUpdate не делает заданное окно невидимым и не очищает бит стиля WS_VISIBLE.
Блокированное окно не может перемещаться.
Обзор Окрашивание и рисование, Функции окрашивания и рисования, BeginPaint, GetDC, GetDCEx, WM_PAINT
Размещение и совместимость LockWindowUpdate |
||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да версии 3.1 и выше |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да версии 3.1 и выше |
е | ||
р | ||
Используемая библиотека | User32.lib | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | - | |
Замечания по платформе | Не имеется |