All Forums
 Категория Visio
 Форум Вопросы и ответы
 Проблемы с контекстным меню
Author Previous Topic Topic Next Topic  

Arsenyi

Rwanda
4 Posts

Posted - 04/22/2005 :  14:43:26
Необходимо в контекстное меню добавить пункт "Скрыть".И при выборе объекта левой кнопкой мыши этот пункт был доступным, а при клике на пустое место пунк "Скрыть" был бы не доступен (напрмер, как с Help)!

Tumanov

Russia
1198 Posts

Posted - 04/22/2005 :  20:01:54
Контекстное меню можно добавить только к чему-нибудь. При клике на пустое место оно всегда будет недоступно (вернее его просто не будет).
В Visio контекстное меню называется shortcut menu. Вот цитата из документации, где рассказывается, как создать пункт меню и прицепить к нему макрос:

Add a macro or add-on to a shape's shortcut menu
Select the shape.
On the Window menu, click Show ShapeSheet.
Click in an Action cell in an Actions section.
If you don't see an Actions section, insert one by clicking Section on the Insert menu, and then selecting the Actions check box in the Insert Section dialog box.
On the Edit menu, click Action.
In the Action dialog box, under Properties, enter the menu and prompt properties.
Click Run macro, and then select the program you want to run from the Run macro list. Click OK.
On the drawing page, right-click the shape, and then click the custom menu command on the shortcut menu to run the program.
Note You also can associate a macro or add-on with a shape by entering a formula that uses the RUNADDON function in any ShapeSheet cell.
Go to Top of Page

Arsenyi

Rwanda
4 Posts

Posted - 04/24/2005 :  13:03:11
Пункт меню я создавать умею:

Set vsoUIObject = appVisio.BuiltInMenus
Set vsoConMenuSets = vsoUIObject.MenuSets
Set vsoConMenuSet = vsoConMenuSets.ItemAtID(visUIObjSetCntx_DrawObjSel)
Set vsoConMenus = vsoConMenuSet.Menus
Set vsoConMenu = vsoConMenus.Item(0)
Set vsoConMenuItems = vsoConMenu.MenuItems
Set vsoConMenuItem = vsoConMenuItems.AddAt(vsoConMenuItems.Count)
vsoConMenuItem.Caption = "&Скрыть"
vsoConMenuItem.Enabled = False
vsoConMenuItem.AddOnName = "ThisDocument.HideObject"
vsoConMenuItem.ActionText = "Run HideObject "
ThisDocument.SetCustomMenus vsoUIObject

В сделующем примере кода я проверяю взят ли объект.
И нужно следующее: если объект взят, то пункт "Скрыть" должен быть доступен, иначе недоступен.

If Button = 2 Then
Dim intRet As Integer, shpObj As Visio.Shape
Dim shpsObj As Visio.Shapes
Dim Find As Boolean
Set shpsObj = vsoPage.Shapes
For Each shpObj In shpsObj
intRet = shpObj.HitTest(x, y, 0)
If intRet = 0 Then
Enabled_False ' здесь нужно, чтобы пункт "Скрыть" остался enable = false

Else
Enabled_True ' а здесь нужно, чтобы пункт "Скрыть" остался enable = true

End If
Next
End If
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)