明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 18783|回复: 52

[【不死猫】] [原创] Vlisp 交互 VB 窗体

  [复制链接]
发表于 2009-9-29 09:56 | 显示全部楼层 |阅读模式
本帖最后由 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的事情了

 

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +3 收起 理由
linshiyin2 + 1
mccad + 2 【好评】好程序

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-2-27 08:38 | 显示全部楼层
(setq frm (Vlax-Invoke-Method nonsmall 'ShowWnd (Vlax-Get ACAD 'HWND )))程序一到这句话就卡死了
 楼主| 发表于 2009-9-29 10:06 | 显示全部楼层
VB 代码

本帖子中包含更多资源

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

x
发表于 2009-9-29 10:16 | 显示全部楼层

呵呵,买了两个明经币啊!

发表于 2009-9-30 00:00 | 显示全部楼层
jxphklibin发表于2009-9-29 10:16:00呵呵,买了两个明经币啊!

学到知识,花银子值啊!

发表于 2009-9-30 08:44 | 显示全部楼层
下载学习学习
 楼主| 发表于 2009-9-30 09:11 | 显示全部楼层

在线看图不大清楚

可以另存到本地查看。

关于VB窗体的属性,

可以参考MSDN或VBA帮助。

发表于 2009-11-25 01:05 | 显示全部楼层

好东东 花钱也值

发表于 2009-11-25 10:51 | 显示全部楼层

学习了,讲的很好呀,谢谢了

发表于 2009-11-25 19:51 | 显示全部楼层
讲的很好呀,
发表于 2009-12-13 22:44 | 显示全部楼层

我在LISP里使用 (startapp "VB程序的路径和程序")  调用VB的程序,只调用一个时没问题,当连续调用两个时,第二个调用的程序不等第一个运行完就开始运行了,怎么才能控制一个运行完第二个再启动呢

程序大致结构如下:

(defun c:test()

  (startapp APP1) (startapp APP2))

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

本版积分规则

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

GMT+8, 2024-4-19 21:35 , Processed in 0.710140 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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