13. Теперь этот листинг надо детально рассмотреть. В качестве ссылок будут использоваться номера комментариев в тексте.
1) Объявляется переменная типа MenuBarMenu. Переменная одна, значит, на панели команд устройства будет один пункт меню.
2) Объявляются переменные типа MenuBarButton. Переменных этого типа четыре, значит, на панели команд устройства будет четыре кнопки.
3) Создается объект типа MenuBarMenu как элемент коллекции. При создании ему присваивается уникальный идентификатор mnuFile, задаем надпись, которая будет отображаться на кнопке меню, и этот объект связывается с переменной mnuFile.
4) Поскольку пункт меню может содержать в себе команды, коллекция команд содержится в свойстве Items. Она может быть пополнена при помощи вызова метода Add, что и происходит в этом фрагменте кода. Добавляются команды меню Файл и Редактирования шрифта. В качестве аргументов метода Add выступает индекс добавляемого элемента (1), уникальный ключ (itFont) и надпись, которая будет выведена в пункт меню – Редактированиешрифта. То, к какой именно команде меню относятся данные действия, определяется индексом, который указывается в скобках после свойства Item.
5) Каждая команда пункта меню может содержать вложенные меню. Для пополнения списка вложенных подменю у каждой команды существует свойство SubItems. У этого свойства есть метод Add. В данном фрагменте кода к пункту меню Редактирование шрифта добавляются три подменю – Полужирный, Наклонный и Размер.
6) К подменю Размер добавляются три вложенных подменю – 8, 10 и 12. Подменю 8 помечается звездочкой, чтобы указать текущее значение размера шрифта.
7) Следующая команда меню не имеет ни ключа, ни надписи, потому что во второй строке этого фрагмента кода для нее устанавливается стиль разделителя, и она просто будет отображать горизонтальную полосу в списке команд меню.
8) Добавляется команда Открыть.
9) Добавляется разделитель.
10) Добавляется команда Завершить работу.
11) Добавляется очередная кнопка. Для нее устанавливается стиль разделителя (mbrSeparator). Это значит, что на панели команд эта кнопка будет отображена в виде вертикальной черты.
12) Добавляются еще три кнопки. Для всех трех кнопок задается стиль mbrButtonGroup. Этот стиль объединит кнопки в зависимую группу, и пользователь сможет нажимать только одну кнопку из группы.
13) Работа с меню временно завершена. Теперь нужно установить положение фрейма на форме и очистить список.
14. Еще один фрагмент кода свяжет зависимые кнопки с процедурой установки фонового цвета в приложении. Этот код приведен в листинге 3.14.
Листинг 3.14Private Sub MenuBar1_ButtonClick(ByVal Button As MenuBarLib.MenuBarButton)
Select Case Button.Key
Case "1"
Label1.BackColor = &H80000005
Label2.BackColor = &H80000005
Label3.BackColor = &H80000005
List1.BackColor = &H80000005
Case "2"
Label1.BackColor = &HC0FFFF
Label2.BackColor = &HC0FFFF
Label3.BackColor = &HC0FFFF
List1.BackColor = &HC0FFFF
Case "3"
Label1.BackColor = &HC0FFC0
Label2.BackColor = &HC0FFC0
Label3.BackColor = &HC0FFC0
List1.BackColor = &HC0FFC0
End Select
End Sub