WM_NCCALCSIZE сообщение отправляется, когда необходимо рассчитать размер и положение клиентской области окна. Обработка этого сообщения, приложение может управлять содержание клиентской области окна при изменении размера или положения окна.
WM_NCCALCSIZE fCalcValidRects = wParam (BOOL); / / Допустимые области флага lpncsp = lParam (LPNCCALCSIZE_PARAMS); / / Размер расчетные данные или lpncsp = lParam (LPRECT); / / новое окно координирует
Если параметр wParam равно FALSE, приложение не нужно указать допустимый частью клиентской области.
Если параметр wParam равно FALSE, lParam указывает на структуры RECT . На въезд структура содержит прямоугольник предлагаемого окна для окна. На выходе структура должна содержать координаты соответствующей клиентской области окон на экране.
Если параметр fCalcValidRects имеет значение FALSE, приложение должно возвращать ноль.
Если fCalcValidRects имеет значение TRUE, приложение должно возвращать ноль или сочетанием следующих значений:
Значение | Значение |
---|---|
WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT | |
Эти значения, используется в комбинации, укажите, что клиентской области окна должен быть сохранен и надлежащим образом выравнивания относительно новое положение окна. Например чтобы выровнять клиентской области в левом нижнем углу, возвращают значения WVR_ALIGNLEFT и WVR_ALIGNBOTTOM. | |
WVR_HREDRAW, WVR_VREDRAW | |
Эти значения, используемые в сочетании с другими ценностями, вызвать окно полностью перерисовку если клиентский прямоугольник изменения размера горизонтально или вертикально. Эти значения аналогичны стили класса CS_HREDRAW и CS_VREDRAW. | |
WVR_REDRAW | |
Это значение приводит все окно быть перерисованы. Это сочетание значений WVR_HREDRAW и WVR_VREDRAW. | |
WVR_VALIDRECTS | |
Это значение указывает, что, после возвращения из WM_NCCALCSIZE, прямоугольников, определяемых rgrc [1] и rgrc [2] члены NCCALCSIZE_PARAMS структуры содержат действительный назначения и источника области прямоугольники, соответственно. Система сочетает в себе эти прямоугольники для расчета площади окна, чтобы сохранить. Система копирует любой части окна изображения, которое находится в пределах исходного прямоугольника и обрезает изображение в прямоугольник назначения. Оба прямоугольника находятся в относительно родителя или экран относительно координат. | |
Это возвращаемое значение позволяет приложению для реализации более сложных стратегий сохранения клиентской области, такие как центрирования или сохранение подмножества клиентской области. |
Если fCalcValidRects имеет значение TRUE и приложение возвращает ноль, старый клиентской области сохраняются и выравнивается с левого верхнего угла клиентской области новых.
Окно может быть перерисованы, в зависимости от того, указан ли стиль класса CS_HREDRAW или CS_VREDRAW. Это по умолчанию, обратно совместимой обработка этого сообщения с помощью функции DefWindowProc (в дополнение к расчет прямоугольник обычного клиента, описанных в предыдущей таблице).
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Не поддерживается.
Заголовок:Объявленные в winuser.h.
Обзор Windows, сообщения окна, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT