明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3381|回复: 20

[函数] 求一段在lisp或VBA下更改AutoCAD标题的程序

  [复制链接]
发表于 2011-5-31 22:53 | 显示全部楼层 |阅读模式
求一段在lisp或VBA下更改AutoCAD标题的程序,最好是LISP,谢谢扣位大侠了?
发表于 2011-5-31 23:47 | 显示全部楼层
本帖最后由 highflybird 于 2011-5-31 23:50 编辑

新建一个vba文件,插入模块,写入下面的代码:运行即可:
  1. Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

  2. Sub test()

  3.    Dim CADhwnd As Long
  4.    CADhwnd = ThisDrawing.Application.hwnd
  5.    Call SetWindowText(CADhwnd, "窗口标题已经改变!")   '改变CAD程序标题
  6.    
  7.    Dim DOChwnd As Long
  8.    DOChwnd = ThisDrawing.hwnd
  9.    Call SetWindowText(DOChwnd, "图形标题已经改变!")   '改变图形窗口标题
  10.    
  11. End Sub

发表于 2011-5-31 23:54 | 显示全部楼层
本帖最后由 highflybird 于 2011-5-31 23:54 编辑

回复 scry_wxj 的帖子

如果用DynamicWrapperX也很简单
  1. (setq DWX (vlax-create-object "DynamicWrapperX"))
  2. (vlax-invoke DWX 'Register "USER32" "SetWindowTextW" "i=lw" "r=l")
  3. (vlax-invoke DWX 'SetWindowTextW (vla-get-hwnd (vlax-get-acad-object)) "呵呵!神了!")
  4. (vlax-release-object DWX)
发表于 2011-6-2 20:05 | 显示全部楼层
回复 highflybird 的帖子

那请问怎么修改cad左上角的图标呢
发表于 2011-6-3 00:32 | 显示全部楼层
本帖最后由 highflybir 于 2011-6-3 00:45 编辑

回复 yanshengjiang 的帖子

  1.   (setq DWX (vlax-create-object "DynamicWrapperX"))
  2.   (vlax-invoke DWX 'Register "Shell32" "ExtractIconW" "i=lwl" "r=l")
  3.   (vlax-invoke DWX 'Register "USER32" "SendMessageW" "i=llll" "r=l")
  4.   (setq WM_SETICON 128)
  5.   (setq *APP (vlax-get-acad-object))
  6.   (setq hWnd (vla-get-hwnd *APP))
  7.   (setq icon (vlax-invoke DWX 'ExtractIconW 0 "C:/windows/system32/shell32.dll" 0))
  8.   (setq ret  (vlax-invoke DWX 'SendMessageW hwnd WM_SETICON 0 icon))
  9.   (vlax-release-object DWX)

下面的是获取ACAD.exe的图标。


  1.   (setq DWX (vlax-create-object "DynamicWrapperX"))
  2.   (vlax-invoke DWX 'Register "Shell32" "ExtractIconW" "i=lwl" "r=l")
  3.   (vlax-invoke DWX 'Register "USER32" "SendMessageW" "i=llll" "r=l")
  4.   (setq WM_SETICON 128)
  5.   (setq *APP (vlax-get-acad-object))
  6.   (setq name (vla-get-FullName *APP))
  7.   (setq hWnd (vla-get-hwnd *APP))
  8.   (setq count (vlax-invoke DWX 'ExtractIconW 0 name -1))
  9.   (setq icon (vlax-invoke DWX 'ExtractIconW 0 name 0))
  10.   (setq ret  (vlax-invoke DWX 'SendMessageW hwnd WM_SETICON 0 icon))
  11.   (vlax-release-object DWX)


 楼主| 发表于 2011-6-3 13:40 | 显示全部楼层
回复 highflybird 的帖子

谢谢你.    它提示   错误: 参数类型错误: VLA-OBJECT nil    ,能否再解答一下.
发表于 2011-6-3 15:42 | 显示全部楼层
鍥炲 highflybir 鐨勫笘瀛

鏈嬪弸 鎴戝緢鑿溿
发表于 2011-6-3 15:51 | 显示全部楼层
鑰佹槸涔辩爜 閮侀椃
发表于 2011-6-3 15:56 | 显示全部楼层
luan  ma銆
 楼主| 发表于 2011-6-3 16:27 | 显示全部楼层
怎么是乱码?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 21:50 , Processed in 0.226627 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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