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

Описания RDS

Приложения

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

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

А.4.13. RDS_PANDESCRIPTION – описание панели блока в окне подсистемы

# Приложения

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

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

#### А.4.13. RDS_PANDESCRIPTION – описание панели блока в окне подсистемы

Структура RDS_PANDESCRIPTION используется для получения описания панели, созданной блоком в окне подсистемы. Эта структура заполняется сервисной функцией rdsPANGetDescr, а также создается и автоматически заполняется RDS при вызове реакции блока на действия с панелью (событие RDS_BFM_BLOCKPANEL). Пример использования структуры RDS_PANDESCRIPTION приведен в §2.10.4 руководства программиста.

Эта структура используется только для получения описания панели. Для изменения параметров и внешнего вида панели предусмотрены специальные команды.

      typedef struct {
        DWORD servSize;          // Размер этой структуры в байтах
        RDS_HOBJECT Object;      // Объект, связанный с этой панелью
        RDS_BHANDLE Block;       // Блок-владелец панели
        RDSINT32 PLeft,PTop;     // Левый верхний угол панели
        RDSINT32 PWidth,PHeight; // Размер панели
        RDSINT32 Order;          // Номер панели в данном блоке
        BOOL Visible;            // Видимость панели
        HWND Handle;             // Оконный объект или NULL
        RDSINT32 Width,Height;   // Размеры оконного объекта
        BOOL Border;             // Наличие рамки
        BOOL CloseButton;        // Наличие кнопки закрытия панели
        BOOL Scalable;           // Панель меняет размер при
                                 // изменении масштаба системы
        BOOL Sizeable;           // Размер панели может
                                 // изменяться пользователем
        BOOL Moveable;           // Положение панели может
                                 // изменяться пользователем
        BOOL CaptionBar;         // Есть полоса заголовка
        RDSCSTR CaptionA;        // Текущий заголовок (UTF8)
        RDSWCSTR CaptionW;       // Текущий заголовок (UTF16)
        //RDSXCSTR Caption;      // Текущий заголовок (поле-псевдоним)
      } RDS_PANDESCRIPTION;
      typedef RDS_PANDESCRIPTION *RDS_PPANDESCRIPTION;

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

servSize(DWORD)
  Размер этой структуры в байтах. Перед вызовом любой сервисной функции, работающей с этой структурой, полю servSize необходимо присвоить значение sizeof(RDS_PANDESCRIPTION).
Object(RDS_HOBJECT)
  Идентификатор вспомогательного объекта RDS, связанного с данной панелью. Этот идентификатор указывается во всех сервисных функциях, которые работают с панелями.
Block(RDS_BHANDLE)
  Идентификатор блока, которому принадлежит данная панель.
PLeft, PTop(RDSINT32)
  Горизонтальная (PLeft) и вертикальная (PTop) координаты левого верхнего угла панели на рабочем поле окна подсистемы. Эти координаты указываются для масштаба 100%.
PWidth, PHeight(RDSINT32)
  Ширина (PWidth) и высота (PHeight) панели на рабочем поле окна подсистемы в масштабе 100%. Это внешние размеры панели – размеры оконного объекта Windows, находящегося на этой панели, могут быть меньше за счет рамки панели и полосы ее заголовка.
Order(RDSINT32)
  Порядковый номер панели в блоке, определяющий ее близость к переднему плану. Панели одного и того же блока с большим значением поля Order будут перекрывать панели с меньшим его значением. Перекрытие панелей разных блоков определяется взаимным расположением самих блоков.
Visible(BOOL)
  TRUE, если панель должна быть видима, FALSE, если она должна быть скрыта. Это поле определяет не фактическую видимость панели, а ее желаемое состояние. При закрытом окне подсистемы ни одна панель в ней не показывается на экране, но на значении поля Visible это никак не отражается. Те панели, для которых поле Visible установлено в TRUE, будут автоматически показаны при открытии окна подсистемы.
Handle(HWND)
  Дескриптор оконного объекта Windows, находящегося внутри панели. Его можно использовать в вызовах Windows API. Если оконный объект не создан (если панель невидима, или если окно ее подсистемы закрыто), в этом поле будет находиться значение NULL.
Width, Height(RDSINT32)
  Ширина (Width) и высота (Height) оконного объекта Windows, находящегося внутри панели, если он существует.
Border(BOOL)
  TRUE, если панель имеет рельефную рамку, FALSE в противном случае.
CloseButton(BOOL)
  TRUE, если панель имеет кнопку закрытия в правом верхнем углу полосы заголовка, FALSE в противном случае. Кнопка закрытия позволяет пользователю убрать панель с экрана, она может выводится только на панелях с рамкой и заголовком.
Scalable(BOOL)
  TRUE, если панель автоматически изменяет размеры при изменении масштаба подсистемы, и FALSE, если ее размеры остаются постоянными независимо от масштаба.
Sizeable(BOOL)
  TRUE, если пользователь может изменять размеры панели, перетаскивая ее границы и углы, FALSE в противном случае. Изменение размеров возможно только у панелей с включенной рамкой.
Moveable(BOOL)
  TRUE, если пользователь может перемещать панель, перетаскивая ее за полосу заголовка, FALSE в противном случае. Панели без заголовков перетаскивать нельзя.
CaptionBar(BOOL)
  TRUE, если панель имеет полосу заголовка, FALSE в противном случае.
CaptionA(RDSCSTR),CaptionW(RDSWCSTR),Caption(RDSXCSTR)
  Указатель на строку (char*) во внутренней памяти RDS, в которой хранится текст, выводимый в заголовке панели (если включена полоса заголовка). Функция модели не должна как-либо изменять эту строку, для изменения текста заголовка используется команда RDS_PAN_CAPTION.

См. также

rdsPANGetDescr, rdsPANCreate, RDS_BFM_BLOCKPANEL, RDS_PAN_CAPTION.