lihengmin 发表于 2008-6-5 22:55:00

怎么样在把 标题显示出来呢?帮帮忙

chnxgd 发表于 2008-6-6 21:47:00

虽然我看得似懂非懂,但也收获不少,至少知道了vb可以调用ACAD,不知VBA可不可以。

linshucai 发表于 2008-7-2 10:51:00

可以查看VDRAW的帮助及事例

pyeye 发表于 2008-7-18 16:57:00

看了大家的讨论,受益匪浅!<div>在VB中经过测试,确实可以把autocad软件窗口作为子窗体显示在VB窗体中,但是在VB.net2005中,每次运行到SetParent(lHwnd, Form1.Handle)时,程序就自动关闭,没有任何提示。逐步调试时,发现前面的那些语句都可以很好的执行。</div><div>我的代码如下:</div><div>AcadApp = GetObject(, "AutoCAD.Application") '此时AutoCad已启动,直接得到<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lHwnd = GetParent(GetParent(AcadApp.Activedocument.hwnd))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If lHwnd = 0 Then Exit Sub<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp.Visible = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp.WindowState = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lState = AcadApp.WindowState<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetWindowRect(lHwnd, r)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetParent(lHwnd, <strong>Me.Handle</strong>)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Me.ScaleMode = vbPixels<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetWindowPos(lHwnd, 0, 0, 0, Me.Width - 8, Me.Height - 8, 0)</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp.Visible = True&nbsp; '使AutoCad可见<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acaddoc = AcadApp.Activedocument&nbsp;&nbsp; '设acaddoc为当前图形文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyLayer = acaddoc.Layers<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mospace = acaddoc.ModelSpace&nbsp; '设mospace为当前图形文件的模型空间<br/>那个地方之所以用Me.Handle,是因为在VB.net中窗体已经没有了hwnd属性。<br/>查了很多资料,还是没找到原因,大家一起探讨一下这个问题呵!</div>

superyuanbo 发表于 2010-5-7 17:07:00

确实是精华帖,我从中学习了不少,大家都是高手

superyuanbo 发表于 2010-5-9 21:39:00

请问一下,怎样才能使镶嵌入vb窗体的cad不能由用户拖动来该表其大小,只能随vb窗体最大最小化

pmq 发表于 2010-5-30 22:02:00

本帖最后由 作者 于 2010-6-2 19:05:14 编辑 <br /><br /> <p>VB 开发CAD&nbsp; </p>
<p>下载地址:<font face="Verdana">http://pmq.ys168.com/</font></p>
<p><img src="http://home.hxland.com/attachment/201006/2/10143836_1275476636XU3l.jpg"/></p>
<p><font face="Verdana"></font>&nbsp;</p>

ningyong58 发表于 2010-6-1 08:05:00

efan2000发表于2003-10-8 19:10:00static/image/common/back.gif以下内容为程序代码:




Option Explicit Private Declare Function SetParent Lib \"user32\" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Private Declare Funct


<p>这是绝对的正解.</p></td></tr>
<tr style="DISPLAY: none">
<td id="copycode37305"></td></tr></tbody></table>SetParent第一个参数是子窗口的句柄,现在设为ACAD的句柄了,第二个参数是父窗口的句柄,现在设为VB窗体的句柄。恢复设置父窗口的句柄为0。也就是重新指定屏幕为其的父窗口。
<div align="right"><font color="#000066">[此贴子已经被作者于2003-10-11 21:06:30编辑过]</font></div></div>
<p></p>

slw7310 发表于 2012-5-8 09:14:53

我试着用了,窗口正常,引用正常。有个问题------如果在这种情况下使用有vb.net生成的.DLL加载到CAD中,无论使用哪一种方法(netload,Lisp,ARX, 修改注册表自动加载,手动加载)加载,都无效。.DLL中注册的命令都无效,CAD提示“未注册命令####”。

能否楼主分析一下。盼望能解决这一难题啊!!

Beatawonderful 发表于 2012-5-11 10:34:42

efan2000 发表于 2003-10-11 22:02 static/image/common/back.gif
重新修改了一下,支持VB的窗体缩放时ACAD的窗口自动跟随缩放。

efan2000,您好!为什么我把您的程序复制到VB里面,运行没反应啊?请您赐教,非常感谢!   第1页“地板”这一楼的程序倒是可以实现功能!
页: 1 2 3 4 5 6 7 [8] 9
查看完整版本: [讨论]如何令autocad软件窗口能够出现在VB窗体中?