Приложения
Приложение А. Функции, константы и структуры 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.