All Forums
 Категория Visio
 Форум Вопросы и ответы
 Вызвать ф-ию из меню под правой кнопкой
Author Previous Topic Topic Next 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 форэвер

...а вобще-то я белый и пушистый.
А как бы так сделать, чтобы этот пункт меню появлялся везде - независимо от всяких шейпов и страниц?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/14/2005 :  22:00:09
Не получится :(
Go to Top of Page

immortal

Russia
391 Posts

Posted - 04/15/2005 :  09:30:26  Visit immortal's Homepage
да без програмирования ни чего не выйдет

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

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
Go to Top of Page

immortal

Russia
391 Posts

Posted - 04/15/2005 :  11:17:25  Visit immortal's Homepage
это помоему добавление меню в панель меню, а не в контекстное меню

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

Евгений

88 Posts

Posted - 04/15/2005 :  11:27:40
Да, это просто меню из тех, что наверху.
Не получится, так не получится. Сделаю обычным образом, добавляя экшн для всех шейпов и для страницы. Тогда получится, что при правом клике почти везде в меню будет данная команда.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 04/15/2005 :  12:15:08  Visit immortal's Homepage
решение вероятно (не пробовал) в следующем: надо найти команду которая добавляет в контекстное меню строку или написать обработчик события нажатия на правую кнопку, но всё это такой гемор, тут надо оценивать стоит разбираться в этом или проще каждому шейпу назначить.

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page

brace

Russia
358 Posts

Posted - 04/15/2005 :  12:27:18
о вкусах не спорят
но по-моему приятнее иметь свою кнопку в штатном меню
чем делать правый клик на чем либо. При добавлении новых шейпов Вам
придется и в них делать экшн.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 04/16/2005 :  16:38:32  Visit immortal's Homepage
ну если так рассуждать, то лучше тогда сделать не меню, а кнопку панели инструментов
да на вкус и цвет я вам не товаришь


визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)