21 сент. 2010 г.

GetUpdateRect

Функция GetUpdateRect получает координаты наименшего прямоугольника, который полностью содержит область модификации указанного окна. Если окно было создано со стилем CS_OWNDC и режим планирования не MM_TEXT, GetUpdateRect получает прямоугольник в логических координатах. В другом случае, она получает прямоугольник в клиентских координатах. Если нет области модификации, GetUpdateRect получает пустой прямоугольник (с установленными координатами в нулевые значения).
BOOL GetUpdateRect(
    HWND hWnd,  // дескриптор окна
    LPRECT lpRect,  // адрес координат прямоугольника модификации
    BOOL bErase  // флаг очистки
   );
Параметры:

hWnd Идентифицирует окно, с которого будет получена область модификации.
lpRect Адрес структуры RECT, которая получает координаты оградительного прямоугольника.
Приложение может установить этот параметр в NULL для определения существования области модификации в окне. Если этот параметр равен NULL, GetUpdateRect возвращает ненулевое значение в случае существования области модификации, и ноль если ее нет. Это позволяет просто и эффективно определить получено-ли сообщение WM_PAINT из неверной области.
bErase Определяет: будет-ли стерт фон в области модификации. Если этот параметр равен TRUE и область модификации не пуста, GetUpdateRect посылает сообщение WM_ERASEBKGND указанному окну, чтоб оно стерло фон.
Возвращаемые значения:
Если область модификации не пуста, функция возвращает ненулевое значение.
Если она пуста – возвращается ноль.
Замечания:
Прямоугольник модификации, полученный функцией BeginPaint, идентичен полученному от GetUpdateRect.
BeginPaint автоматически допускает область модификации, так что любой вызов GetUpdateRect, зделанный после вызова BeginPaint, возвращает пустую область модификации.
Смотрите также:
BeginPaint, GetUpdateRgn, InvalidateRect, RECT, UpdateWindow, ValidateRect