Шаг 378 - CWnd::OnNcCalcSize

afx_msg void OnNcCalcSize( BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp );

Параметры
bCalcValidRects
Определяет, должна ли прикладная программа, определить, которая часть клиентской области содержит допустимую информацию. Windows копирует допустимую информацию к определенной области внутри новой клиентской области. Если этот параметр TRUE, прикладная программа должна определить, которая часть клиентской области является допустимой.
lpncsp
Указатель на NCCALCSIZE_PARAMS структуру данных, которая содержит информацию которую прикладная программа может использовать, чтобы вычислить новый размер и позицию CWnd прямоугольника (включая клиентскую область, рамки, заголовок, слайдеры, и так далее).

Замечания
Рамка вызывает эту функцию, когда размер и позиция клиентской области должен быть вычислены. Обрабатывая это сообщение, прикладная программа может управлять содержанием клиентской области окна, когда размер или позиция окна изменяется.
Независимо от значения bCalcValidRects, первый прямоугольник в массиве, определенном членом rgrc структуры NCCALCSIZE_PARAMS содержит координаты окна. Для дочернего окна, координаты - относительно клиентской области родительского окна. Для окон верхнего уровня , координаты - аппаратные координаты устройства. Прикладная программа должна изменить rgrc[0] прямоугольника, чтобы отразить размер и позицию клиентской области.
rgrc[1] и rgrc[2] прямоугольника являются допустимыми только если bCalcValidRects TRUE. В этом случае, rgrc[1] прямоугольник содержит координаты окна прежде, чем оно перемещалось или изменено. rgrc[2] прямоугольник содержит координаты клиентской области окна перед перемещением окна. Все координаты - относительно родительского окна или экрана.
Заданная по умолчанию реализация вычисляет размер клиентской области, основанной на характеристиках окна (присутствие слайдеров, меню, и так далее), и помещает результат в lpncsp.

Эта функция вызвана рамкой, чтобы позволить Вашей прикладной программе обрабатывать сообщение Windows. Параметры, переданные к Вашей функции отражают параметры, полученные рамкой, когда сообщение было получено. Если Вы вызываете реализацию базового класса этой функции, та реализация использует параметры, первоначально переданные с сообщением и не параметры, которые Вы обеспечиваете функции.


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