乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 48|回复: 1

在问一个问题

[复制链接]

10

主题

16

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
56
发表于 2002-10-25 09:43:00 | 显示全部楼层 |阅读模式
在cad菜单的开发中,不是有一个enabled属性吗?
我的菜单已经加入到cad的标准菜单中,
我要怎么样才能使一些菜单项在一些情况下可用
一些情况下不可能
用vb或vba开发都可以
我用的是cad2000
比如说我默认的情况是不能用的,也就是灰色的,那么在我做了一些操作后,我要使这个菜单项可以用了,怎样实现它
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2002-10-25 17:15:00 | 显示全部楼层

函数如下:
'锁定菜单项
Public Sub ClockMenu(ByVal Name As String, ByVal bEnable As Boolean)
    Dim PMenuObj As AcadPopupMenu
    Dim EntObj As AcadPopupMenuItem
    Dim s As String
   
    On Error GoTo ErrTrap
    If Name = "" Then Exit Sub
    If InStr(Name, "...")  0 Then '"..."及之后的内容不考虑
        Name = Left(Name, InStr(Name, "...") - 1)
    End If
    If InStr(Name, "Ctrl") Then '快捷键不考虑
        Name = Left(Name, InStr(Name, "Ctrl") - 1)
    End If
    Name = Trim(Name)
    For Each PMenuObj In Application.MenuBar
        For Each EntObj In PMenuObj
            s = EntObj.Caption
            If InStr(s, "...")  0 Then
                s = Left(s, InStr(s, "...") - 1)
            End If
            If InStr(s, "Ctrl") Then
                s = Left(s, InStr(s, "Ctrl") - 1)
            End If
            s = Trim(s)
            
            If StrComp(s, Name, vbTextCompare) = 0 Then
                EntObj.Enable = bEnable
                Exit For
            End If
        Next
    Next
    Set EntObj = Nothing
    Set PMenuObj = nohting
    Exit Sub
   
ErrTrap:
    If Not (EntObj Is Nothing) Then Set EntObj = Nothing
    If Not (PMenuObj Is Nothing) Then Set PMenuObj = nohting
    On Error GoTo 0
End Sub
使用方法:
Sub Main()
    ClockMenu "新建(&N)", False
End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 06:24 , Processed in 0.271006 second(s), 56 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表