Author |
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.
|
|
|
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
|
|
|
|
Topic |
|
|
|