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

Приложения

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

А.5. Сервисные функции и макросы RDS

А.5.31. Вспомогательный объект для панелей в окне подсистемы

Описываются функции и команды вспомогательного объекта RDS, предназначенного для создания внутри окна подсистемы независимых панелей, являющихся самостоятельными оконными объектами Windows.

А.5.31.1. rdsPANCreate – создать объект для работы с панелью

Функция rdsPANCreate создает вспомогательный объект RDS, позволяющий модели блока открывать в окне родительской подсистемы этого блока независимо перемещаемую панель с произвольным содержимым.

    rdsPANCreateA(
    int Order,            // Близость к переднему плану
    int Left,int Top,     // Левый верхний угол
    int Width,int Height, // Размеры
    int Flags,            // Флаги (RDS_PAN_F_*)
     Caption       // Заголовок или NULL (UTF8)
  );
    rdsPANCreateW(
    int Order,            // Близость к переднему плану
    int Left,int Top,     // Левый верхний угол
    int Width,int Height, // Размеры
    int Flags,            // Флаги (RDS_PAN_F_*)
     Caption      // Заголовок или NULL (UTF16)
  );
  // 
    rdsPANCreate(
    int Order,            // Близость к переднему плану
    int Left,int Top,     // Левый верхний угол
    int Width,int Height, // Размеры
    int Flags,            // Флаги (RDS_PAN_F_*)
     Caption      // Заголовок или NULL (кодировка по умолчанию)
  );

Тип указателя на эту функцию

RDS_HoIIIIIIS (для UTF8) или RDS_HoIIIIIIWs (для UTF16)

Параметры

Order (int)
Целое число, определяющее близость панели к переднему плану (панели одного и того же блока с большим значением Order будут перекрывать панели с меньшим значением, перекрытие панелей разных блоков определяется взаимным расположением самих блоков).
LeftTop (int)
Координаты левого верхнего угла (Left – горизонтальная, Top – вертикальная) панели в окне подсистемы в точках экрана в масштабе 100%.
WidthHeight (int)
Ширина (Width) и высота (Height) панели в точках экрана в масштабе 100%.
Flags (int) }
Набор битовых флагов, определяющих поведение и внешний вид панели:
RDS_PAN_F_BORDER Панель имеет рельефную рамку.
RDS_PAN_F_CAPTION У панели есть полоса заголовка в стиле окон Windows (только вместе с флагом RDS_PAN_F_BORDER).
RDS_PAN_F_HIDDEN Панель создается невидимой. Видимость панели можно включить позже командой RDS_PAN_VISIBLE.
RDS_PAN_F_MOVEABLE Пользователь может перемещать панель, перетаскивая ее мышью за заголовок (только вместе с флагом RDS_PAN_F_CAPTION).
RDS_PAN_F_NOBUTTON В полосе заголовки панели нет кнопки закрытия (только вместе с флагом RDS_PAN_F_CAPTION). По умолчанию эта кнопка есть, и нажатие на нее скрывает панель.
RDS_PAN_F_PAINTMSG Блок, модель которого создала панель, получает сообщения о необходимости перерисовать ее.
RDS_PAN_F_SCALABLE Панель меняет свои размеры вместе с масштабом подсистемы.
RDS_PAN_F_SIZEABLE Пользователь может изменять размеры панели, перетаскивая углы и стороны ее рамки (только вместе с флагом RDS_PAN_F_BORDER).
Caption (RDSCSTR, RDSWCSTR, RDSXCSTR)
Указатель на строку, которая будет отображаться в полосе заголовка панели, или NULL, если панели не нужен текстовый заголовок.

Возвращаемое значение

Уникальный идентификатор созданного объекта (RDS_HOBJECT).

Примечания

Эта функция создает вспомогательный объект, который будет отвечать за работу с панелью в окне родительской подсистемы блока, модель которого вызвала функцию. В отличие от других вспомогательных объектов, этот объект привязан к блоку, модель которого его создала – панель будет отображаться в родительской подсистеме именно этого блока, его модель будет получать уведомления о различных действиях с панелью через событие RDS_BFM_BLOCKPANEL и т.п.

При создании объекта указываются координаты и размеры панели, ее близость к переднему плану и заголовок. Все эти параметры, кроме близости к переднему плану, могут быть позже изменены соответствующими командами.

Работа с панелями подробно описана в §2.10.4 руководства программиста. Как правило, взаимодействие модели блока с объектом панели строится по следующему сценарию:

Чаще всего панели используются для размещения в окнах подсистемы дополнительных объектов, не относящихся к RDS: стандартных полей ввода, областей вывода внешних библиотек и т.п.

Пример

В §2.10.4 руководства программиста приводится пример построения на панели трехмерного изображения средствами библиотеки OpenGL.

См. также

Вспомогательные объекты, rdsDeleteObject, RDS_BFM_BLOCKPANEL.


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