WM_NCCALCSIZE

WM_NCCALCSIZE сообщение отправляется, когда необходимо рассчитать размер и положение клиентской области окна. Обработка этого сообщения, приложение может управлять содержание клиентской области окна при изменении размера или положения окна.

WM_NCCALCSIZE fCalcValidRects = wParam (BOOL);        / / Допустимые области флага lpncsp = lParam (LPNCCALCSIZE_PARAMS);  / / Размер расчетные данные или lpncsp = lParam (LPRECT);               / / новое окно координирует 
 

Параметры

fCalcValidRects
Значение wParam. Если параметр wParam равно TRUE, он указывает, что приложение следует указать, какую часть клиентской области содержит актуальную информацию. Система копирует действительную информацию в данной области в рамках новой клиентской области.

Если параметр wParam равно FALSE, приложение не нужно указать допустимый частью клиентской области.

lpncsp
Значение lParam. Если параметр wParam равно TRUE, lParam указывает на NCCALCSIZE_PARAMS структуру, содержащую информацию, которую приложение может использовать для вычисления новый размер и положение прямоугольника клиента.

Если параметр 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 (в дополнение к расчет прямоугольник обычного клиента, описанных в предыдущей таблице).

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Не поддерживается.
Заголовок:Объявленные в winuser.h.

Родственные слова

Обзор Windows, сообщения окна, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Index