Текущий раздел:

Описания RDS

Приложения

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

А.4. Структуры RDS

А.4.7. RDS_EDITORPARAMETERS – параметры окна подсистемы

# Приложения

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

### А.4. Структуры RDS

#### А.4.7. RDS_EDITORPARAMETERS – параметры окна подсистемы

Структура RDS_EDITORPARAMETERS используется для получения параметров окна подсистемы – размеров, положения, числа слоев и т.п. – при помощи сервисной функции rdsGetEditorParameters.

      typedef struct {
        DWORD servSize;                // Размер этой структуры
        RDSINT32 GridDx,GridDy;        // Шаг сетки
        BOOL SnapToGrid;               // Включена привязка к сетке
        BOOL DisplayGrid;              // Изображается сетка
        COLORREF GridColor;            // Цвет точек сетки
        BOOL Visible;                  // Окно редактора открыто
        RDSINT32 WinLeft,WinTop,       // Размеры и положение окна
        RDSINT32 WinWidth,WinHeight;   //
        RDSINT32 WorkWidth,WorkHeight; // Размеры рабочей области
        RDSINT32 ScrollX,ScrollY;      // Позиция полос прокрутки
        double Zoom;                   // Масштаб
        COLORREF MainPointColor;       // Цвет точек привязки блоков
        BOOL ShowBlockNames;           // Показывать имена блоков
        BOOL ShowVarNames;             // Показывать имена переменных
        RDSINT32 NumLayers;            // Число слоев
        RDSINT32 CurLayerNum;          // Номер текущего слоя
        RDSINT32 CurLayerId;           // Идентификатор текущего слоя
        RDSINT32 NumConfigs;           // Чило конфигураций слоев
        RDSINT32 CurConfig;            // Номер текущей конфигурации
        BOOL PrintZoneActive;          // Зона печати включена
        BOOL DisplayPrintZone;         // Зона печати отображается
        RDSINT32 PZLeft,PZTop,         // Размеры и положение зоны печати
        RDSINT32 PZWidth,PZHeight;     //
        BOOL WinMaximized;             // Окно развернуто на весь экран
        BOOL WinMinimized;             // Окно свернуто
        DWORD RefreshDelay;            // Задержка автоматического обновления
                                       // окна в режиме расчета
        COLORREF BlockNameColor;       // Цвет имен блоков
        RDSINT32 BlockNameDistance;    // Расстояние от блока до имени
        COLORREF BackgroundColor;      // Цвет фона окна
        BOOL DefBackground;            // В качестве цвета фона
                                       // окна выбран цвет окна Windows
        DWORD WindowReactions;         // Битовые флаги реакции окна на
                                       // мышь и клавиатуру
        BOOL Wallpaper;                // Включены обои
        BOOL WallpaperTile;            // Обоями заполнено все рабочее поле
        RDSINT32 WallpaperWidth,       // Размеры обоев
        RDSINT32 WallpaperHeight;      //
        BOOL Dashboard;                // В системе только неподвижные
                                       // неперекрывающиеся блоки
      } RDS_EDITORPARAMETERS;
      typedef RDS_EDITORPARAMETERS *RDS_PEDITORPARAMETERS;

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

servSize(DWORD)
  Размер этой структуры в байтах. Перед вызовом любой сервисной функции, работающей с этой структурой, полю servSize необходимо присвоить значение sizeof(RDS_EDITORPARAMETERS).
GridDx, GridDy(RDSINT32)
  Шаг сетки окна по горизонтали (GridDx) и вертикали (GridDy). При включенной привязке к сетке влияет на перемещение блоков мышью при редактировании схемы. Шаг сетки указывается без учета масштаба – это именно шаг изменения координат блоков.
SnapToGrid(BOOL)
  TRUE, если включена привязка к сетке, и FALSE, если выключена.
DisplayGrid(BOOL)
  TRUE, если точки сетки изображаются в окне, и FALSE, если сетка невидима.
GridColor(COLORREF)
  Цвет точек сетки.
Visible(BOOL)
  TRUE, если окно подсистемы открыто, и FALSE, если оно закрыто. Параметры окна подсистемы можно получить и при закрытом окне – они хранятся в RDS и будут применены к окну в момент открытия.
WinLeft, WinTop, WinWidth, WinHeight(RDSINT32)
  Горизонтальная (WinLeft) и вертикальная (WinTop) координаты левого верхнего угла окна подсистемы, а также его ширина (WinWidth) и высота (WinHeight) в точках экрана. Положение и размеры окна указываются с учетом его рамки и полосы заголовка, то есть это его внешние размеры. Эти поля можно использовать для привязки каких-либо вспомогательных окон к границам окна подсистемы.
WorkWidth, WorkHeight(RDSINT32)
  Ширина (WorkWidth) и высота (WorkHeight) рабочего поля подсистемы, то есть пространства, на котором можно размещать блоки и связи. Размер рабочего поля указывается без учета масштаба. Если размеры рабочего поля в текущем масштабе больше размеров внутренней части окна, в окне будут отображаться полосы прокрутки.
ScrollX, ScrollY(RDSINT32)
  Положение полос прокрутки окна в масштабе 100%. Фактически, это координата левой верхней точки рабочего поля, видимой в окне.
Zoom(double)
  Текущий масштаб окна в долях единицы: 1 для 100%, 2 для 200%, 0.5 для 50% и т.п.
MainPointColor(COLORREF)
  Цвет, которым изображается точка привязки картинки блока, если ее отображение разрешено в параметрах блока.
ShowBlockNames(BOOL)
  TRUE, если в окне разрешено отображение имен блоков, и FALSE, если оно запрещено. Если отображение имени запрещено в параметрах самого блока, имя не будет показываться в окне независимо от значения этого поля.
ShowVarNames(BOOL)
  TRUE, если в окне разрешено отображение имен переменных на концах связей, и FALSE, если оно запрещено. Если отображение имени запрещено в параметрах точки связи, имя не будет показываться в окне независимо от значения этого поля.
NumLayers(RDSINT32)
  Общее число слоев в подсистеме.
CurLayerNum(RDSINT32)
  Порядковый номер текущего слоя в текущей конфигурации слоев – чем меньше номер, тем ближе слой к переднему плану. В разных конфигурациях слоев одни и те же слои могут иметь разные порядковые номера. Это поле может принимать значения от 0 до NumLayers−1.
CurLayerId(RDSINT32)
  Идентификатор текущего слоя. Слой имеет один и тот же идентификатор во всех конфигурациях слоев. Именно эти идентификаторы указываются в сервисных функциях работы со слоями, структуре описания блока RDS_BLOCKDESCRIPTION и структуре описания связи RDS_CONNDESCRIPTION (поле LayerId).
NumConfigs(RDSINT32)
  Общее число конфигураций слоев в подсистеме.
CurConfig(RDSINT32)
  Порядковый номер текущей конфигурации в списке конфигураций слоев. Это поле может принимать значения от 0 до NumConfigs−1.
PrintZoneActive(BOOL)
  TRUE, если в подсистеме активна зона печати (прямоугольная область, которой ограничивается выводимая на печать или сохраняемая в виде растрового рисунка часть рабочего поля подсистемы), FALSE в противном случае.
DisplayPrintZone(BOOL)
  TRUE, если зона печати отображается в окне подсистемы, и FALSE, если ее отображение выключено. Зона печати может не отображаться, но быть при этом активной.
PZLeft, PZTop, PZWidth, PZHeight(RDSINT32)
  Горизонтальная (PZLeft) и вертикальная (PZTop) координаты левого верхнего угла зоны печати, ее ширина (PZWidth) и высота (PZHeight). Положение и размеры зоны указываются в координатах рабочего поля, то есть в масштабе 100%.
WinMaximized(BOOL)
  TRUE, если окно подсистемы развернуто на весь экран, FALSE в противном случае.
WinMinimized(BOOL)
  TRUE, если окно подсистемы свернуто, FALSE в противном случае.
RefreshDelay(DWORD)
  Интервал (в миллисекундах) автоматического обновления окна в режиме расчета, или 0, если автоматическое обновление выключено.
BlockNameColor(COLORREF)
  Цвет, которым в окне отображаются имена блоков.
BlockNameDistance(RDSINT32)
  Интервал в точках экрана в масштабе 100% между изображением блока и его именем. Это значение используется по умолчанию, пользователь может перетащить имя блока вручную в произвольное место окна. Параметры отображения имени конкретного блока указываются в структуре его описания (поля NamePos, NameDx и NameDy).
BackgroundColor(COLORREF)
  Цвет фона рабочего поля подсистемы.
DefBackground(BOOL)
  TRUE, если в качестве цвета фона рабочего поля установлен стандартный цвет окна Windows, и FALSE, если цвет задан пользователем вручную. Подсистемы, для которых установлен стандартный цвет рабочего поля, могут выглядеть по-разному на разных машинах.
WindowReactions(DWORD)
  Битовые флаги, определяющие возможность реакции окна подсистемы на мышь и клавиатуру, если соответствующие события не были перехвачены внутренними блоками подсистемы:

  RDS_BDF_MOUSEEVENTS | Функция модели подсистемы будет вызывается при нажатии и отпускании кнопок мыши и перемещении курсора с нажатыми кнопками в пределах рабочего поля (события RDS_BFM_WINDOWMOUSEDOWN, RDS_BFM_WINDOWMOUSEUP, RDS_BFM_WINDOWMOUSEDBLCLICK, RDS_BFM_WINDOWMOUSEMOVE).
  RDS_BDF_FREEMOUSEMOVE | Функция модели подсистемы вызывается при перемещении курсора мыши в пределах рабочего поля (событие RDS_BFM_WINDOWMOUSEMOVE) даже тогда, когда ни одна из кнопок не нажата (только при установленном флаге RDS_BDF_MOUSEEVENTS).
  RDS_BDF_KBDEVENTS | Функции модели подсистемы разрешена реакция на клавиатуру (события RDS_BFM_WINDOWKEYDOWN и RDS_BFM_WINDOWKEYUP).

Wallpaper(BOOL)
  TRUE, если на рабочем поле изображаются растровые «обои», и FALSE в противном случае.
WallpaperTile(BOOL)
  TRUE, если «обоями» заполнено все рабочее поле подсистемы, FALSE, если они изображаются только в его левом верхнем углу.
WallpaperWidth, WallpaperHeight(RDSINT32)
  Ширина (WallpaperWidth) и высота (WallpaperHeight) растрового изображения «обоев». Следует помнить, что при изменении масштаба подсистемы размер растрового изображения обоев не изменяется.
Dashboard(BOOL)
  TRUE, если для подсистемы установлен флаг «в подсистеме только неподвижные не перекрывающиеся блоки» (то есть включена оптимизация рисования, см. §2.10.2 руководства программиста), и FALSE, если этот флаг не установлен.

Примеры

Примеры использования структуры RDS_EDITORPARAMETERS приведены в §2.10.4 и §2.12.5 руководства программиста.

См. также

rdsGetEditorParameters.