Поделиться через


Сведения об элементах управления арматурой

Элемент управления Rebar выступает в качестве контейнера для дочерних окон. Он может содержать одну или несколько полос, и каждая полоса может иметь любое сочетание панели захвата, растрового изображения, текстовой метки и одного дочернего окна. Приложение назначает дочернее окно (как правило, другой элемент управления) в группу элементов управления rebar. При динамическом изменении положения полосы управления, элемент управления ребрами регулирует размер и положение дочернего окна, назначенного этой полосе. Кроме того, приложение может указать фоновое растровое изображение для полосы, и элемент управления реек отобразит дочернее окно полосы поверх растрового изображения.

На следующем снимке экрана показан элемент управления rebar с двумя диапазонами. Один содержит панель инструментов, а другой — выпадающий список. Оба ленточных изделия имеют зажим, который позволяет их перемещать и изменять размер.

снимок экрана диалогового окна с элементом управления Rebar с полосой, содержащей панель инструментов, и полосой, содержащей выпадающий список

Заметка

Элемент управления арматурой реализован в версии 4.70 и более поздних версиях Comctl32.dll.

 

Арматурные ленты и дочерние окна

Приложение определяет характеристики арматурной полосы с помощью сообщений RB_INSERTBAND и RB_SETBANDINFO. Эти сообщения принимают адрес структуры REBARBANDINFO в качестве параметра lParam. Элементы структуры REBARBANDINFO определяют признаки заданной полосы. Чтобы задать свойства группы, задайте элемент cbsize для указания размера структуры в байтах. Затем задайте элемент fMask, чтобы указать, какие элементы структуры заполняются вашим приложением.

Чтобы назначить дочернее окно полосе, добавьте флаг RBBIM_CHILD в поле fMask член структуры REBARBANDINFO, а затем задайте для поля hwndChild дескриптор дочернего окна. Приложения могут задать минимальную допустимую ширину и высоту дочернего окна в членах cxMinChild и cyMinChild.

При уничтожении элемента управления перекладиной он уничтожает все дочерние окна, назначенные полосам внутри него. Чтобы предотвратить уничтожение дочерних окон, назначенных его полосам, удалите полосы, отправив сообщение RB_DELETEBAND, а затем используйте сообщение RB_SETPARENT, чтобы переназначить родительский элемент для другого окна, прежде чем уничтожить элемент управления реечной панелью.

Пользовательский интерфейс элемента управления Rebar

Все управляющие полосы арматуры можно изменить, за исключением тех, которые используют стиль RBBS_FIXEDSIZE. Чтобы изменить или изменить порядок полос в элементе управления, щелкните и перетащите панель захвата полосы. Элемент управления rebar автоматически изменяет размер и изменяет положение дочерних окон, назначенных его полосам. Кроме того, можно изменять размер полосы, щелкнув текст полосы, если он есть.

Список изображений элемента управления Rebar

Если приложение использует список изображений с элементом управления типа rebar, то перед добавлением групп в элемент управления необходимо отправить сообщение RB_SETBARINFO. Это сообщение принимает адрес структуры REBARINFO в качестве параметра lParam. Перед отправкой сообщения подготовьте структуру REBARINFO, задав элемент cbSize равным размеру структуры в байтах. Затем, если элемент управления панелью инструментов будет отображать изображения на панелях, установите элемент fMask флагом RBIM_IMAGELIST и назначьте дескриптор списка изображений элементу himl. Если арматурный стержень не будет использовать изображения полос, задайте для fMask значение ноль.

Переадресация сообщений управления реестром

Элемент управления перенаправит все сообщения окна WM_NOTIFY в родительское окно. Кроме того, элемент управления перенаправляет все сообщения, отправленные ему из окон, назначенных его полосам, например WM_CHARTOITEM, WM_COMMANDи т. д.