Author |
Topic |
|
eug
Russia
19 Posts |
Posted - 05/20/2003 : 14:06:43
|
Создал в VSD VBA-код, добавляющий меню "Выход" в Визио кот должен закрывать документ. При работе - ошибка - залезает в недопустимую область памяти и обваливает само Визио. ---------------------------------------------------------------------- Dim UIObj As Visio.UIObject, mnSet As Visio.MenuSet, mn As Visio.Menu Private Sub Document_DocumentOpened(ByVal doc As IVDocument) Set UIObj = Visio.Application.BuiltInMenus: Set mnSet = UIObj.MenuSets.ItemAtID(visUIObjSetDrawing) Set mn = mnSet.Menus.AddAt(0): mn.Caption = "Выход": mn.AddOnName "Application.DoCmd(visCmdFileClose)" 'me.AddOnName="Me.Close" 'mn.AddOnName "ThisDocument.Close": mn.Enabled=true ThisDocument.SetCustomMenus UIObj End Sub -------------------------------------------- (закоментированные варианты делают меню "Выход" неактивным) В то же время, добавив конпку CommandButton семейства MSForms 2.0 и навесив на нее Me.Close - получаем корректный выход из рис. В чем дело?
Багоцкий |
|
Tanuha
Russia
1 Posts |
Posted - 10/20/2004 : 22:26:11
|
У меня очень похожая ситуация.
Такое ощущение, что, в .AddonName должна быть либо команда (DoCmd), либо реальный addon, который есть в коллекции addon-ов приложения. И описываться он должен, как имя exe-файла. Если же в AddonName передается какая-то левая строчка, то он просто дизейблит соответствующий пункт меню :((((
Отсюда вопрос как сделать так, чтобы при нажатии на пункт меню вызывался именно какой-нибудь метод.
Конечно, можно делать меню через CommandBar и навешивать на CommandBarButton обработчик событий, но это очень неудобно...
Может кто-нибудь подскажет, либо как все-таки заставить MenuItem вызывать не только готовые addon-ы, либо как можно сопоставить CommandBarButton конкретному пункту меню, созданному через UIObject. |
|
|
|
Topic |
|
|
|