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

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

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

screen shot of dialog box showing a rebar control with a band containing a toolbar and a band containing a combo box

Примечание

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

 

Полосы перекладки и дочерние Windows

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

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

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

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

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

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

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

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

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