Author |
Topic |
|
Евгений
88 Posts |
Posted - 04/14/2005 : 19:28:24
|
Как сделать, чтобы в меню под правой кнопкой мыши добавился пункт, при нажатии которого вызывается моя процедура? |
|
Евгений
88 Posts |
Posted - 04/14/2005 : 19:36:05
|
Разрешу себе зацитировать уважаемого immortal: quote: да ладно прибедняться-то, я дык по нерусски не понимаю. :-) т.к. не написана версия визио и русифицирована она или нет пишу относительно русифицированной: 1. Выделяем шейп 2. Меню: Окно - показать лист 3. Кликаем на открывшимся листе правой кнопкой мыши и в контекстном меню жмём Вставить секцию... 4. выбираем секцию "Действия" , жмём "ОК" Появится секция Action, нам нужны ячейки: Menu и Action соответственно пишем в Menu название вашего меню в Action действие, кот. необходимо выполнить при нажатии на это меню. воть и усё
визио 2003 форэвер
...а вобще-то я белый и пушистый.
А как бы так сделать, чтобы этот пункт меню появлялся везде - независимо от всяких шейпов и страниц? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/14/2005 : 22:00:09
|
Не получится :( |
|
|
immortal
Russia
391 Posts |
Posted - 04/15/2005 : 09:30:26
|
да без програмирования ни чего не выйдет
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 04/15/2005 : 10:32:57
|
This code creates a new menu item called Demo, which appears to the left of the Window menu. The Demo menu contains a single menu item, Queue marker event. When the user clicks this menu item, the code queues a marker event with the context string:
Public Sub AddMenuExample() ' This procedure demonstrates how to queue a marker event from a menu item. ' ' Parameters ' vsoUIObject The Visio UIObject object ' vsoMenuSets The collection of menu sets ' vsoMenuSet The drawing window menu set ' vsoMenus The menu collection for the drawing window menu set ' vsoMenu The menu used for demonstration ' vsoMenuItems The collection of items in the menu ' vsoMenuItem The new menu item added to the collection
Dim vsoUIObject As Visio.UIObject Dim vsoMenuSets As Visio.MenuSets Dim vsoMenuSet As Visio.MenuSet Dim vsoMenus As Visio.Menus Dim vsoMenu As Visio.Menu Dim vsoMenuItems As Visio.MenuItems Dim vsoMenuItem As Visio.MenuItem
On Error GoTo AddMenuExample_Err
'Get a UIObject object that represents Microsoft Visio 'built-in menus. Set vsoUIObject = Visio.Application.BuiltInMenus
'Get the MenuSets collection. Set vsoMenuSets = vsoUIObject.MenuSets
'Get the drawing window menu set. Set vsoMenuSet = vsoMenuSets.ItemAtID( _ visUIObjSetDrawing)
'Get the Menus collection. Set vsoMenus = vsoMenuSet.Menus
'Add a Demo menu before the Window menu. Set vsoMenu = vsoMenus.AddAt(7) vsoMenu.Caption = "Demo"
'Get the MenuItems collection. Set vsoMenuItems = vsoMenu.MenuItems
'Add a menu item to the new Demo menu. Set vsoMenuItem = vsoMenuItems.Add
'Set the properties for the new menu item. vsoMenuItem.Caption = "Queue marker event" vsoMenuItem.AddOnName = "QueueMarkerEvent" vsoMenuItem.AddOnArgs = "/soln=Demo /cmd=2" vsoMenuItem.ActionText = "Queue marker event"
'Tell Visio to use the new UI when the document 'is active. ThisDocument.SetCustomMenus vsoUIObject
Exit Sub
AddMenuExample_Err: MsgBox Err.Description
End Sub
|
|
|
immortal
Russia
391 Posts |
Posted - 04/15/2005 : 11:17:25
|
это помоему добавление меню в панель меню, а не в контекстное меню
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
Евгений
88 Posts |
Posted - 04/15/2005 : 11:27:40
|
Да, это просто меню из тех, что наверху. Не получится, так не получится. Сделаю обычным образом, добавляя экшн для всех шейпов и для страницы. Тогда получится, что при правом клике почти везде в меню будет данная команда. |
|
|
immortal
Russia
391 Posts |
Posted - 04/15/2005 : 12:15:08
|
решение вероятно (не пробовал) в следующем: надо найти команду которая добавляет в контекстное меню строку или написать обработчик события нажатия на правую кнопку, но всё это такой гемор, тут надо оценивать стоит разбираться в этом или проще каждому шейпу назначить.
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 04/15/2005 : 12:27:18
|
о вкусах не спорят но по-моему приятнее иметь свою кнопку в штатном меню чем делать правый клик на чем либо. При добавлении новых шейпов Вам придется и в них делать экшн. |
|
|
immortal
Russia
391 Posts |
Posted - 04/16/2005 : 16:38:32
|
ну если так рассуждать, то лучше тогда сделать не меню, а кнопку панели инструментов да на вкус и цвет я вам не товаришь
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
|
Topic |
|