pmq 发表于 2010-5-31 15:50:00

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

<p><font face="Verdana">VB<font face="Verdana">如何</font>显示/隐藏CAD的标题、菜单、工具栏、命令行、状态栏,前三样已经实现。</font></p>
<p>&nbsp;</p>
<p><font face="Verdana"><font face="Verdana">Private Sub AutoCADAll_Click(Index As Integer) 'CAD纳入到VB框中<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; Set AcadApp = GetObject(, "AutoCAD.Application")&nbsp;&nbsp; '启动AutoCad</font></font></p>
<p><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set AcadApp = CreateObject("AutoCAD.Application")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err Then Exit Sub<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; On Error GoTo 0<br/>&nbsp;&nbsp;&nbsp; lHwnd = GetParent(GetParent(AcadApp.ActiveDocument.hwnd))<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; If lHwnd = 0 Then Exit Sub<br/>&nbsp;&nbsp;&nbsp; AcadApp.Visible = False<br/>&nbsp;&nbsp;&nbsp; AcadApp.WindowState = 2<br/>&nbsp;&nbsp;&nbsp; lState = AcadApp.WindowState<br/>&nbsp;&nbsp;&nbsp; GetWindowRect lHwnd, rS<br/>&nbsp;&nbsp;&nbsp; SetParent lHwnd, Frame.hwnd<br/>&nbsp;&nbsp;&nbsp; Me.ScaleMode = vbPixels<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '=================================================<br/>&nbsp;&nbsp;&nbsp; L = GetWindowLong(lHwnd, GWL_STYLE)&nbsp;&nbsp;&nbsp; '隐藏标题<br/>&nbsp;&nbsp;&nbsp; L = L And Not (WS_CAPTION)<br/>&nbsp;&nbsp;&nbsp; L = SetWindowLong(lHwnd, GWL_STYLE, L) '隐藏标题<br/>&nbsp;&nbsp;&nbsp; '-------------------------------------------------<br/>&nbsp;&nbsp;&nbsp; Call HIdeMenus_Click '隐藏菜单<br/>&nbsp;&nbsp;&nbsp; Call HideTool_Click&nbsp; '隐藏CAD工具栏<br/>&nbsp;&nbsp;&nbsp; '-------------------------------------------------<br/>&nbsp;&nbsp;&nbsp; Call Form_Resize<br/>&nbsp;&nbsp;&nbsp; AcadApp.Visible = True&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '使AutoCad可见<br/>&nbsp;&nbsp;&nbsp; Set AcadDoc = AcadApp.ActiveDocument&nbsp;&nbsp; '设acaddoc为当前图形文件<br/>&nbsp;&nbsp;&nbsp; Set Mospace = AcadDoc.ModelSpace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '设mospace为当前图形文件的模型空间<br/>&nbsp;&nbsp;&nbsp; Set MyLayer = AcadDoc.Layers<br/>End Sub<br/></p></font></font>
<p><font face="Verdana"><font face="Verdana">Private Sub HideTool_Click()&nbsp; '隐藏/显示CAD工具栏<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; Dim Menugroup As Object<br/>&nbsp;&nbsp;&nbsp; Dim Toolbar As Object<br/>&nbsp;&nbsp;&nbsp; Dim i As Integer<br/>&nbsp;&nbsp;&nbsp; Static CadTools() As Boolean<br/>&nbsp;&nbsp;&nbsp; i = 0<br/>&nbsp;&nbsp;&nbsp; If Hidetool.Checked = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each Menugroup In AcadApp.MenuGroups<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim CadTools(1 To Menugroup.Toolbars.Count)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each Toolbar In Menugroup.Toolbars<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CadTools(i) = Toolbar.Visible '添加工具栏状态<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Toolbar.Visible = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Toolbar<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Menugroup<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hidetool.Checked = True<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each Menugroup In AcadApp.MenuGroups<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each Toolbar In Menugroup.Toolbars<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Toolbar.Visible = CadTools(i)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Toolbar<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Menugroup<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hidetool.Checked = False<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; 'ForceForegroundWindow AcadApp.hwnd ' 将焦点切换到AutoCAD<br/>End Sub<br/></font></font></p>
<p><font face="Verdana"><font face="Verdana">Private Sub HIdeMenus_Click() '隐藏/显示CAD菜单<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; If hMenu &lt;&gt; 0 Then Exit Sub<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; If HIdeMenus.Checked = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cMenu = GetMenu(lHwnd)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetMenu lHwnd, 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIdeMenus.Checked = True<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetMenu lHwnd, cMenu<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIdeMenus.Checked = False<br/>&nbsp;&nbsp;&nbsp; End If<br/>End Sub<br/></font>&nbsp;&nbsp;&nbsp; </font></p>

jsxygshh 发表于 2012-7-26 02:40:25

本人调试了一个晚上也没有成功,水平太浅了,请不吝赐教给原实例好吗?    jsxygshh@163.com
十分感谢

jsxygshh 发表于 2012-7-27 07:33:43

请pmq给个实例,谢谢

CAD83 发表于 2012-7-29 19:07:53

请pmq给个实例,给看看
页: [1]
查看完整版本: VB如何显示/隐藏CAD的标题、菜单、命令行