明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索

[讨论]如何令autocad软件窗口能够出现在VB窗体中?

  [复制链接]
发表于 2008-6-5 22:55 | 显示全部楼层
怎么样在把 标题显示出来呢?帮帮忙
发表于 2008-6-6 21:47 | 显示全部楼层
虽然我看得似懂非懂,但也收获不少,至少知道了vb可以调用ACAD,不知VBA可不可以。
发表于 2008-7-2 10:51 | 显示全部楼层
可以查看VDRAW的帮助及事例
发表于 2008-7-18 16:57 | 显示全部楼层
看了大家的讨论,受益匪浅!
在VB中经过测试,确实可以把autocad软件窗口作为子窗体显示在VB窗体中,但是在VB.net2005中,每次运行到SetParent(lHwnd, Form1.Handle)时,程序就自动关闭,没有任何提示。逐步调试时,发现前面的那些语句都可以很好的执行。
我的代码如下:
AcadApp = GetObject(, "AutoCAD.Application") '此时AutoCad已启动,直接得到
        lHwnd = GetParent(GetParent(AcadApp.Activedocument.hwnd))
        If lHwnd = 0 Then Exit Sub
        AcadApp.Visible = False
        AcadApp.WindowState = 2
        lState = AcadApp.WindowState
        GetWindowRect(lHwnd, r)
        SetParent(lHwnd, Me.Handle)
        'Me.ScaleMode = vbPixels
        SetWindowPos(lHwnd, 0, 0, 0, Me.Width - 8, Me.Height - 8, 0)
        AcadApp.Visible = True  '使AutoCad可见
        acaddoc = AcadApp.Activedocument   '设acaddoc为当前图形文件
        MyLayer = acaddoc.Layers
        mospace = acaddoc.ModelSpace  '设mospace为当前图形文件的模型空间
那个地方之所以用Me.Handle,是因为在VB.net中窗体已经没有了hwnd属性。
查了很多资料,还是没找到原因,大家一起探讨一下这个问题呵!
发表于 2010-5-7 17:07 | 显示全部楼层
确实是精华帖,我从中学习了不少,大家都是高手
发表于 2010-5-9 21:39 | 显示全部楼层
请问一下,怎样才能使镶嵌入vb窗体的cad不能由用户拖动来该表其大小,只能随vb窗体最大最小化
发表于 2010-5-30 22:02 | 显示全部楼层
本帖最后由 作者 于 2010-6-2 19:05:14 编辑

VB 开发CAD 

下载地址:http://pmq.ys168.com/

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2010-6-1 08:05 | 显示全部楼层
efan2000发表于2003-10-8 19:10:00以下内容为程序代码: Option Explicit Private Declare Function SetParent Lib \"user32\" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Private Declare Funct

这是绝对的正解.

SetParent第一个参数是子窗口的句柄,现在设为ACAD的句柄了,第二个参数是父窗口的句柄,现在设为VB窗体的句柄。恢复设置父窗口的句柄为0。也就是重新指定屏幕为其的父窗口。
[此贴子已经被作者于2003-10-11 21:06:30编辑过]

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

能否楼主分析一下。盼望能解决这一难题啊!!
发表于 2012-5-11 10:34 | 显示全部楼层
efan2000 发表于 2003-10-11 22:02
重新修改了一下,支持VB的窗体缩放时ACAD的窗口自动跟随缩放。

efan2000,您好!为什么我把您的程序复制到VB里面,运行没反应啊?请您赐教,非常感谢!   第1页“地板”这一楼的程序倒是可以实现功能!
123456789下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 17:43 , Processed in 3.492453 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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