本帖最后由 nonsmall 于 2013-5-13 10:54 编辑
题目:Vlisp交互VB窗体 前言:在ACAD里面使用VB方面的知识很多,在此就不多述了。 我尽量用最简单、不必修改的VB代码,剩下的都是Lisp的事情。 概述:本文将讨论如何通过Vlisp对VB窗体进行操作。 实现非模态VB窗体向Vlisp提供数据绘制图形。 原理:Vlisp通过ActiveX操作VB窗体对象 说明:测试成功于AutoCAD 2004 2007 2008,2006似乎只能在调试时好用…… 步骤:安装一套企业版的VB6, {新建一个工程}-{ActiveX DLL} 在右侧修改工程名和类名,把代码复制进去,添加一个窗体,窗体上放置2个文本框 {文件}-{生成*****DLL} VB代码(一共就6行)如下: [Post=1] Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Public Function ShowWnd(ByVal ACADhWnd As Long) As Object Form1.Show 0 SetParent Form1.hWnd, ACADhWnd Set ShowWnd = Form1 End Function [/Post] 然后就是Lisp的事情了 |