Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры RDS

А.2. События блока и связанные с ними описания

А.2.7. События, связанные с изменением схемы пользователем

А.2.7.6. RDS_BFM_RESIZE – размер блока изменен пользователем

Поток, в котором вызывается функция модели

Главный поток RDS или поток расчета (только если размер изменен сервисной функцией, вызванной в потоке расчета).

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_RESIZE.

Третий параметр функции модели (void *ExtParam)

Указатель на структуру описания события RDS_RESIZEDATA.

Возвращаемое функцией модели значение

RDS_BFR_DONE Изменение размеров блока подтверждено моделью (размеры могут быть скорректированы).
RDS_BFR_STOP Изменение размеров блока отменено моделью.

Примечания

Событие RDS_BFM_RESIZE возникает у блока, внешний вид которого рисуется программно, сразу после изменения его размеров пользователем. На момент вызова реакции на это событие размер блока еще не изменен, он изменится только после нее. Чаще всего в этой реакции подстраиваются размеры каких-либо внутренних элементов изображения блока (см. §2.10.2 руководства программиста) или корректируются изменения размера, сделанные пользователем, если по каким-либо причинам они не подходят для блока.

В параметре ExtParam передается указатель на структуру RDS_RESIZEDATA, описывающую изменение размеров:

  typedef struct {
     HorzResize;             // Изменение горизонтального размера
     VertResize;             // Изменение вертикального размера
     newWidth,newHeight; // Новые значения ширины и высоты
     GridDx,GridDy;      // Шаги сетки редактора
     SnapToGrid;             // Привязка к сетке
  } RDS_RESIZEDATA;
  typedef RDS_RESIZEDATA *RDS_PRESIZEDATA;

Поля структуры

HorzResize (BOOL)
Изменена ширина блока.
VertResize ()
Изменена высота блока. Вместе с полем HorzResize это поле определяет, каким именно образом пользователь изменил размер блока:
HorzResize VertResize Действия пользователя
FALSE FALSE Новые размеры блока заданы числами в окне параметров блока (кнопка «размер для функции DLL»).
FALSE TRUE Пользователь перетащил верхнюю или нижнюю метку масштабирования вверх или вниз (изменена только высота).
TRUE FALSE Пользователь перетащил левую или правую метку масштабирования влево или вправо (изменена только ширина).
TRUE TRUE Пользователь перетащил одну из угловых меток масштабирования (изменены и ширина, и высота).
newWidthnewHeight (RDSINT32)
Новые значения ширины (newWidth) и высоты (newHeight) блока в масштабе 100%. Модель может вмешаться в изменение размеров, заменив значения в этих полях. Например, можно записать вместо newHeight старое значение высоты блока, тогда изменение высоты, сделанное пользователем, будет проигнорировано. Текущие (старые) размеры блока могут быть получены при помощи сервисных функций rdsGetBlockDimensions и rdsGetBlockDimensionsEx.
GridDxGridDy ()
Горизонтальный (GridDx) и вертикальный (GridDy) шаги сетки в окне подсистемы.
SnapToGrid ()
TRUE, если в окне подсистемы включена привязка к сетке.

См. также

RDS_BFM_RESIZING, rdsGetBlockDimensions, rdsGetBlockDimensionsEx, rdsSetBlockRect.


<< >> Оглавление Указатель