Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия2 отчет 2.doc
Скачиваний:
2
Добавлен:
11.11.2019
Размер:
905.22 Кб
Скачать

4.7. Типы меню. Работа с меню: создание, модификация, активация и удаление.

  1. Запустите Word 2010.

  2. Добавьте текст в документ. В теле документа введите =rand(5, 5). Этот параметр добавляет пять абзацев, каждый их которых содержит пять предложений со случайным текстом.

  3. Сохраните документ как файл с использованием макросов TestDocument.docm и закройте файл.

  4. Запустите редактор настраиваемого пользовательского интерфейса Office 2010 и в меню Файл выберите команду Открыть.

  5. Перейдите к созданному документу и нажмите кнопку Открыть.

  6. Щелкните правой кнопкой имя файла в левой области и выберите команду Вставить часть настраиваемого пользовательского интерфейса Office 2010, как показано на рисунке 1. При этом часть customUI14.xml будет добавлена в документ.

Рисунок 1. Использование редактора настраиваемого пользовательского интерфейса для вставки части Office 2010 в документ

  1. В правой области вставьте следующую разметку XML:

XML

Копировать

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

<contextMenus>

<contextMenu idMso="ContextMenuText">

<button idMso="FontDialog" visible="false" />

<toggleButton id="MyToggle" label="My Toggle Button" />

<button id="MyButton" label="My Button" insertBeforeMso="HyperlinkInsert" onAction="GetButtonID" />

<menuSeparator id="MySeparator" />

<menu id="MySubMenu" label="My Submenu" >

<button id="MyButton2" label="Button on submenu" />

</menu>

<gallery id="galleryOne" label="My Gallery">

<item id="item1" imageMso="HappyFace" />

<item id="item2" imageMso="HappyFace" />

<item id="item3" imageMso="HappyFace" />

<item id="item4" imageMso="HappyFace" />

</gallery>

<dynamicMenu id="MyDynamicMenu" label= "My Dynamic Menu" getContent="GetMyContent" />

</contextMenu>

</contextMenus>

</customUI>

  1. Эта разметка XML добавляет элементы управления во встроенное контекстное меню Текст, как указано в атрибуте idMso="ContextMenuText" тега <contextMenu>. Первая кнопка задает атрибут видимости встроенной кнопки Шрифт как false, скрывая команду. После toggleButton вторая кнопка вставляется после кнопки Гиперссылка в контекстном меню на основе параметра insertBeforeMso="HyperlinkInsert". После строки menuSeparator добавляется элемент управления меню с одной кнопкой. Затем добавляется элемент управления коллекцией с четырьмя элементами. И, наконец, после отображения контекстного меню элемент управления dynamicMenu вызывает метод, заданный в атрибуте getContent. Как будет видно, этот метод возвращает дополнительные элементы управления в раскрывающееся меню во время выполнения.

  2. Нажми кнопку Проверить в редакторе настраиваемого пользовательского интерфейса, чтобы убедиться, что в разметке нет ошибок. Исправьте любые ошибки при необходимости. Если ошибок нет, отобразится сообщение, подтверждающее правильность кода.

  3. Сохраните этот файл и закройте редактор.

  4. Вставьте следующий код VBA в область кода.

Копировать

Sub GetButtonID(control As IRibbonControl)

MsgBox ("You click the " & control.ID & " button.")

End Sub

Sub btnAction(control As IRibbonControl)

MsgBox ("You clicked me!")

End Sub

Эти методы вызываются при нажатии двух кнопок в контекстном меню. Обратите внимание, что в каждый метод передается объект IRibbonControl, представляющий элемент управления, который вызвал эту процедуру. Объект IRibbonControl содержит свойство Id, которое используется в методе GetButtonID для определения того, какая кнопка вызвала процедуру. Свойство Id полезно, так как оно позволяет нескольким элементам управления вызывать один и тот же метод и затем выполнять различные задачи в зависимости от идентификатора элемента управления.

Затем добавляется код VBA, который задает функциональность добавленных элементов управления.