logo
Литература_1 / photon_old

Вычисление геометрии для поверхностей управления

Вы должны предусмотреть функцию, которая вычисляет геометрию управляющей поверхности. Поверхности управления опрашиваются для вычисления их геометрии дважды, когда виджет, являющийся их владельцем, опрашивается для вычисления его геометрии:

Аргумент почтового сообщения, передаваемый функции геометрии, говорит Вам, какой случай обрабатывается.

Поверхность может также вычислять свою геометрию на основании геометрии других поверхностей. Используя функции PtCalcSurface() или PtCalcSurfaceById(), вы можете гарантировать, что поверхности, которыми Вы интересуетесь, вычислили свою геометрию до того, как их рассматривают.

Текущая запись геометрии поверхности – это просто вопрос прямой модификации массива указателя поверхностей. Убедитесь, что Вы знаете, как этот массив организован, перед тем как обрабатывать его. Эта организация подробно рассмотрена в документации к функции PtCreateSurface().

Эти функции имеют дело с геометрией поверхностей управления:

PtCalcSurface()

Вынуждает поверхность вычислить свою геометрию

PtCalcSurfaceByAction()

Вынуждает все поверхности, связанные с действием, вычислить свою геометрию

PtCalcSurfaceById()

Вынуждает поверхность управления с заданным идентификатором вычислить свою геометрию

PtSurfaceCalcBoundingBox(), PtSurfaceCalcBoundingBoxById()

Вычисляет окаймляющий прямоугольник для поверхности управления

PtSurfaceExtent(), PtSurfaceExtentById()

Вычисляет пределы поверхности управления

PtSurfaceHit()

Находит поверхность управления для заданной точки

PtSurfaceRect(), PtSurfaceRectById()

Получает ограничивающий прямоугольник для поверхности управления

PtSurfaceTestPoint()

Проверяет, находится ли точка на поверхности управления

      1. Yandex.RTB R-A-252273-3
        Yandex.RTB R-A-252273-4