2.8.Создание меню
2.8.3. Создание меню с картинками



В меню можно включать пункты из уже существующих меню со встроен­ными функциями. Например, если в меню должна быть команда Сохранить, почему бы ее не позаимствовать из панели инструментов File. Как это дела­ется? Да очень просто. Надо определить идентификатор этой команды свойством id, а уже затем определенный пункт меню (в данном случае Сохра­нить) добавить в строку меню методом Add семейства controls, у которого в качестве значения параметра id указано значение идентификатора данной команды.

 

Если же требуется в пункт меню вставить только картинку из стандарт­ного   пункта   без   инициализации   ассоциированных   с   ним   встроенных функций, то в этом случае по идентификатору команды методом FindControi семейства CommandBars надо получить ссылку на сам объект ConmandBarButton, Далее Методом CopyFace объекта CommandBarButton скопировать рисунок найденной стандартной команды в буфер обмена, а затем уже методом pasteFace объекта CommandBarButton вставить его в искомую пользовательскую команду.

 

Для примера создадим строку меню, расположенную вдоль нижнего края ок­на приложения и состоящую из выпадающего меню Файл, в которое входят пункты Сохранить, Создать и Закрыть (листинг 2.5). Пункты меню Сохранить и Закрыть позаимствуем из встроенного меню File. В пункт меню Создать вставим только значок из пункта Создать встроенного меню File, а его функ­циональность реализуем при помощи процедуры-заглушки.



 

 

Листинг 2.5.а. Пункты меню со встроенными функциями и картинками. Модуль ЭтаКнига

Private Sub Workbook_Open()

MenuBuilder

End Sub

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

MenuKiller

End Sub

 

Листинг 2.5.б. Пункты меню со встроенными функциями и картинками. Стандартный модуль

Const CommandBarName As String = "Custom CommandBar"

 

Sub MenuBuilder()

Dim cbMenuBar As CommandBar

Dim cbMenu As CommandBarControl

Dim btnNew As CommandBarButton

Dim btnSave As CommandBarButton

Dim btnExit As CommandBarButton

Dim btnTemp As CommandBarButton

Dim n As Integer

Set cbMenuBar=Application.CommandBars.Add(_

                        Name:=CommandBarName, _

                        Position:=msoBarTop, _

                         MenuBar:=True, _

                         Temporary:=True)

 

cbMenuBar.Visible = True

Set cbMenu = cbMenuBar.Controls.Add(Type:=msoControlPopup)

cbMenu.Caption = "&Файл"

Set btnNew = cbMenu.Controls.Add(Type:=msoControlButton)

 

n = Application.CommandBars("File").Controls("Сохранить").ID

Set btnSave = cbMenu.Controls.Add(Type:=msoControlButton, ID:=n)

n = Application.CommandBars("File").Controls("Закрыть").ID

Set btnExit = cbMenu.Controls.Add(Type:=msoControlButton, ID:=n)

 

n = Application.CommandBars("File").Controls("Создать...").ID

Set btnTemp = Application.CommandBars("File").FindControl( _

Type:=msoControlButton, ID:=n)

btnTemp.CopyFace

With btnNew

.PasteFace

.Caption = "&Создать"

.OnAction = "Macronew"

End With

End Sub

 

Public Sub MacroNew()

MsgBox "Процедура-заглушка для команды Создать"

End Sub

 

Sub MenuKiller()

On Error Resume Next

Application.CommandBars(CommandBarName).Delete

On Error GoTo 0

End Sub



  
ПОИСК
МОЯ КНОПКА
Контакты
МБОУ "Лицей им.Атякшева"

628260 г. Югорск, ул. Ленина 24,
ХМАО-Югра, Тюменская область
Телефон: 8 (34675)2-48-30
Факс: 8 (34675)2-48-30



89222596815 nady_er@mail.ru
Карта
sample map