明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2369|回复: 8

求助!关于添加右键菜单选项的问题

[复制链接]
发表于 2006-5-18 19:04 | 显示全部楼层 |阅读模式

我把例子输进去,试了几个版本的例子,但总是执行到最后一步生成菜单选项的时候总是出现“对象变量和with块变量未设置”的提示,请问这是怎么回事,谢谢了。

发表于 2006-5-19 08:06 | 显示全部楼层
把你的程序贴上来吧!
 楼主| 发表于 2006-5-19 15:58 | 显示全部楼层

Sub Ch_AddMenuItemToshortcutMenu()
    Dim currMenuGroup As AcadMenuGroup
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

    ' 查找快捷菜单并将其指定给
    ' shortcutMenu 变量
    Dim scMenu As AcadPopupMenu
    Dim entry As AcadPopupMenu
    For Each entry In currMenuGroup.Menus
        If entry.ShortcutMenu = True Then
            Set scMenu = entry
        End If
    Next entry

    ' 向快捷菜单添加菜单项
    Dim newMenuItem As AcadPopupMenuItem
    Dim openMacro As String
   
    ' 给宏指定“ESC ESC _open”的 VBA 等价值
   
    openMacro = Chr(3) + Chr(3) + "_open "
Dim a As Integer
Dim b As String
a = Asc("&")
b = Chr(95)
    Set newMenuItem = scMenu.AddMenuItem("", Chr(Asc("&")) + "OpenDWG", openMacro)
End Sub

真是太谢谢了

发表于 2006-5-19 16:34 | 显示全部楼层

其实问题很简单,currMenuGroup得到的菜单组里没有快捷菜单,所以scMenu也就没有被赋值,自然到最后一句会报错。。。。(在我这就是这样)

不如把这句Dim currMenuGroup As AcadMenuGroup
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

换成

    Dim currMenuGroup As AcadMenuGroup
    For Each currMenuGroup In ThisDrawing.Application.MenuGroups
        If currMenuGroup.Name = "AMDTPP" Then Exit For
    Next

 楼主| 发表于 2006-5-19 19:21 | 显示全部楼层

唉,小弟菜鸟,不明白,试了一下,还是有问题哦,运行到

For Each entry In currMenuGroup.Menus

这句时又出现对象变量或with块变量未设置,咋办呢

发表于 2006-5-20 08:12 | 显示全部楼层
没招了,在我这一切正常,没有报错。。。你替换那句话了吗?
发表于 2006-12-6 15:08 | 显示全部楼层
同问,急呀,好几天了这个问题,我的也出现同样的提示,根本通不过
发表于 2017-12-26 22:19 | 显示全部楼层
没有 lisp的 程序吗
发表于 2018-1-10 13:17 | 显示全部楼层
原因是当你要运行这个过程的时候,根本就没有快捷菜单弹出,无法获取,当然就不能执行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号  
©2000-2017 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2018-12-20 00:33 , Processed in 0.198185 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表