1.27.3.22 Сообщение WM_NCCALCSIZE

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

Синтаксис

 
WM_NCCALCSIZE  
fCalcValidRects = (BOOL) wParam;		// флажок действующей области
lpncsp = (LPNCCALCSIZE_PARAMS) lParam;  	// указатель на размер
         					// вычисляемых данных или 
lpncsp = (LPRECT) lParam;			// указатель на новые координаты окна

Параметры
fCalcValidRects
Значение wParam. Это Булево значение, если ИСТИНА (TRUE), то определяется, что прикладная программа должна указать, какая часть рабочей области содержит допустимую информацию. Операционная система копирует правильную информацию в указанный район внутри новой рабочей области. Также, если этот параметр - ИСТИНА (TRUE), lParam указывает на структуру NCCALCSIZE_PARAMS.Если этот параметр - ЛОЖЬ(FALSE), прикладная программа не должна указывать допустимую часть рабочей области. Также, если этот параметр - ЛОЖЬ(FALSE), lParam указывает на структуру RECT.
lpncsp
Значение lParam. Если wParam - ИСТИНА (TRUE), lParam указывает на структуру NCCALCSIZE_PARAMS, которая содержит информацию, которую прикладная программа может использовать, чтобы вычислить новый размер и позицию прямоугольника пользователя. Если wParam - ЛОЖЬ(FALSE), lParam указывает на структуру RECT, которая содержит новые координаты окна, которое было перемещено или изменено. Этот параметр эквивалентен rgrc [0] из структуры NCCALCSIZE_PARAMS.

Возвращаемые значения
Если параметр fCalcValidRects - ЛОЖЬ(FALSE), прикладная программа должна возвратить нуль. Если fCalcValidRects - ИСТИНА (TRUE), прикладная программа может возвратить нуль или допустимую комбинацию следующих значений:

Если fCalcValidRects - ИСТИНА (TRUE), а программа возвращает нуль, старая рабочая область сохраняется и выравнивается по левому верхним углом новой рабочей области.

Действия по умолчанию
Окно может быть повторно выведено, в зависимости от того, установлен ли стиль класса CS_HREDRAW или CS_VREDRAW. Это - по умолчанию, совместимая в обратном направлении обработка этого сообщения функцией DefWindowProc (в дополнение к обычному вычислению прямоугольника пользователя, описанному в предшествующей таблице).

Смотри также
DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Размещение и совместимость WM_NCCALCSIZE

Windows NT			Да 
Win95				Да 
Win32s				Да 
Импортируемая библиотека	-
Заголовочный файл			winuser.h 
Unicode				Нет 
Замечания по платформе		Не имеется

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 16.12.2001