C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 1.27.3.22 Сообщение WM_NCCALCSIZE / Окна… / Win32 API

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

  • WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT - Эти значения, используемые в комбинаци-ях, определяют, что рабочая область окна должна сохраниться и выравниваться соот-ветственно относительно новой позиции окна. Например, чтобы выровнять рабочую область по левому нижнему углу, возвратите значения WVR_ALIGNLEFT и WVR_ALIGNTOP.
  • WVR_HREDRAW, WVR_VREDRAW - Эти значения, используемые в комбинации с любыми другими значениями, заставляют окно быть полностью повторно выведенным, если прямоугольник пользователя изменяет размер горизонтально или вертикально. Эти значения подобны стилям класса CS_HREDRAW и CS_VREDRAW.
  • WVR_REDRAW - Это значение вынуждает повторно вывести все окно. Это - комбинация значений WVR_HREDRAW и WVR_VREDRAW.
  • WVR_VALIDRECTS - Это значение указывает, что, при возврате из WM_NCCALCSIZE, прямоугольники, заданные элементами rgrc [1] и rgrc [2] структуры NCCALCSIZE_PARAMS содержат правильный источник и области адресования прямоугольников, соответственно. Windows объединяет эти прямоугольники, чтобы вычислить область окна, которую нужно сохранить. Windows копирует любую часть изображения окна, которое является внутри исходного прямоугольника и прикрепляет изображение к прямоугольнику назначения. Оба прямоугольника находятся в окне - относительно родительских или экранных координат. Это возвращаемое значение позволяет прикладной программе выполнять более сложные приемы охраны рабочей области, типа центрирования или сохранения подмножества рабочей области.

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

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

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

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

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

| |
Автор Владимир Соковиков.
[AD]





Дебетовая карта Home Credit [CPS] RU