乐筑天下

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

VB如何显示/隐藏CAD的标题、菜单、命令行

[复制链接]
pmq

14

主题

61

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2010-5-31 15:50:00 | 显示全部楼层 |阅读模式
VB如何显示/隐藏CAD的标题、菜单、栏、命令行、状态栏,前三样已经实现。

Private Sub All_Click(Index As Integer) 'CAD纳入到VB框中
    On Error Resume Next
    Set AcadApp = GetObject(, "AutoCAD.Application")   '启动AutoCad
    If Err Then
        Err.Clear
        Set AcadApp = CreateObject("AutoCAD.Application")
        If Err Then Exit Sub
    End If
    On Error GoTo 0
    lHwnd = GetParent(GetParent(AcadApp.ActiveDocument.hwnd))
   
    If lHwnd = 0 Then Exit Sub
    AcadApp.Visible = False
    AcadApp.WindowState = 2
    lState = AcadApp.WindowState
    GetWindowRect lHwnd, rS
    SetParent lHwnd, Frame.hwnd
    Me.ScaleMode = vbPixels
   
    '=================================================
    L = GetWindowLong(lHwnd, GWL_STYLE)    '隐藏标题
    L = L And Not (WS_CAPTION)
    L = SetWindowLong(lHwnd, GWL_STYLE, L) '隐藏标题
    '-------------------------------------------------
    Call HIdeMenus_Click '隐藏菜单
    Call HideTool_Click  '隐藏CAD工具栏
    '-------------------------------------------------
    Call Form_Resize
    AcadApp.Visible = True                 '使AutoCad可见
    Set AcadDoc = AcadApp.ActiveDocument   '设acaddoc为当前图形文件
    Set Mospace = AcadDoc.ModelSpace       '设mospace为当前图形文件的模型空间
    Set MyLayer = AcadDoc.Layers
End Sub

Private Sub HideTool_Click()  '隐藏/显示CAD工具栏
    On Error Resume Next
    Dim Menugroup As Object
    Dim Toolbar As Object
    Dim i As Integer
    Static CadTools() As Boolean
    i = 0
    If Hidetool.Checked = False Then
        For Each Menugroup In AcadApp.MenuGroups
            ReDim CadTools(1 To Menugroup.Toolbars.Count)
            For Each Toolbar In Menugroup.Toolbars
                i = i + 1
                CadTools(i) = Toolbar.Visible '添加工具栏状态
                Toolbar.Visible = False
            Next Toolbar
        Next Menugroup
        Hidetool.Checked = True
    Else
        For Each Menugroup In AcadApp.MenuGroups
            For Each Toolbar In Menugroup.Toolbars
                i = i + 1
                Toolbar.Visible = CadTools(i)
            Next Toolbar
        Next Menugroup
        Hidetool.Checked = False
    End If
    'ForceForegroundWindow AcadApp.hwnd ' 将焦点切换到AutoCAD
End Sub

Private Sub HIdeMenus_Click() '隐藏/显示CAD菜单
    On Error Resume Next
    If hMenu  0 Then Exit Sub
   
    If HIdeMenus.Checked = False Then
        cMenu = GetMenu(lHwnd)
        SetMenu lHwnd, 0
        HIdeMenus.Checked = True
    Else
        SetMenu lHwnd, cMenu
        HIdeMenus.Checked = False
    End If
End Sub
   
回复

使用道具 举报

6

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2012-7-26 02:40:00 | 显示全部楼层
本人调试了一个晚上也没有成功,水平太浅了,请不吝赐教给原实例好吗?    jsxygshh@163.com
十分感谢
回复

使用道具 举报

6

主题

34

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2012-7-27 07:33:00 | 显示全部楼层
请pmq给个实例,谢谢
回复

使用道具 举报

10

主题

55

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2012-7-29 19:07:00 | 显示全部楼层
请pmq给个实例,给看看
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-30 05:20 , Processed in 1.570001 second(s), 60 queries .

© 2020-2025 乐筑天下

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