明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3525|回复: 19

如何更改标题栏

  [复制链接]
发表于 2011-8-30 09:52:07 | 显示全部楼层 |阅读模式

图片是我PS的,请问有没有设置这个位置的系统变量?

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2012-6-19 08:23:37 | 显示全部楼层
xiaoyingzi 发表于 2012-6-18 20:18
(setq filename "mykey.ico")这句是用来为下面做准备
  (vlax-invoke wrap 'Register "USER32" "LoadImag ...

我现在使用您的arx版本的那个改图标和标题文字的,很好用,若不想让用户更改这些配置只能将这ico文件打包进VLX了,实现不行就准备打包进VLX,整个论坛就你对这个问题的研究最深,佩服!另外想问一下,你会修改CAD的启动画面吗?如http://bbs.mjtd.com/thread-70699-2-1.html?我照此方法做了06的,启动不了,直接使用链接上的dll,会弹出画面,然后就提示出错了,所以06的用不了
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2011-8-30 09:53:22 | 显示全部楼层
窗体左下角的我已设置好了,就差标题栏了,请高手指教!
发表于 2011-8-30 10:51:50 | 显示全部楼层
参考http://www.theswamp.org/index.php?topic=12127.0
不过不是系统变量,是用的VBA+API

Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal HWND As Long, ByVal lpString As String) As Long

Sub SetText(Title As String)
Dim RetVal As Long
  RetVal = SetWindowText(Application.HWND, Title)
End Sub

调用
Call SetText("new TITLE")
 楼主| 发表于 2011-8-30 18:49:55 | 显示全部楼层
snddd2000 发表于 2011-8-30 10:51
参考http://www.theswamp.org/index.php?topic=12127.0
不过不是系统变量,是用的VBA+API

能做出一个文件吗?能保证自动加载吗?永久改变吗?
发表于 2011-8-30 18:56:41 | 显示全部楼层
革天明 发表于 2011-8-30 18:49
能做出一个文件吗?能保证自动加载吗?永久改变吗?

可以,工程文件放在启动组里
 楼主| 发表于 2011-8-31 22:50:27 | 显示全部楼层
snddd2000 发表于 2011-8-30 18:56
可以,工程文件放在启动组里

现在可以正常使用,不过还有一点不太好的地方,那就是每次加载时都会问一下是否要加载宏,这个有点麻烦,如何设置不让弹出这个警告呢,最好能在LISP中设置。
 楼主| 发表于 2011-8-31 22:51:21 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2011-8-31 23:06:39 | 显示全部楼层
本帖最后由 xiaoyingzi 于 2011-8-31 23:17 编辑
  1. (defun c:setmycadtitle (/ app acadver wrap hwnd filename str hico)
  2.   (vl-load-com)
  3.   (setq app (vlax-get-acad-object))                                               ;CAD程序对象
  4.   (setq acadver (atof (getvar "acadver")))                                     ;获取当前cad版本
  5.   (setq wrap (vlax-create-object "DynamicWrapperX"))                 ;创建DynamicWrapperX对象
  6.   (setq hwnd (vla-get-hwnd app))                                                  ;当前文档句柄
  7.   (cond
  8.     ((= acadver 16.0)(setq str "xxxx For AutoCAD 2004"))
  9.     ((= acadver 16.1)(setq str "xxxx For AutoCAD 2005"))
  10.     ((= acadver 16.2)(setq str "xxxx For AutoCAD 2006"))
  11.     ((= acadver 17.0)(setq str "xxxxFor AutoCAD 2007"))
  12.     ((= acadver 17.1)(setq str "xxxx For AutoCAD 2008"))
  13.     ((= acadver 17.2)(setq str "xxxx For AutoCAD 2009"))
  14.     ((= acadver 18.0)(setq str "xxxx For AutoCAD 2010"))
  15.   )
  16.   (setq filename "mykey.ico")
  17.   (vlax-invoke wrap 'Register "USER32" "SetWindowText" "i=ls" "r=l") ;注册SetWindowText函数
  18.   (vlax-invoke wrap 'SetWindowText hwnd str)                           ;重设CAD程序标题窗口文字内容
  19.   (vlax-release-object wrap)
  20.   (princ)
  21. )
使用前需注册下http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85724&highlight=api里的DynWrapX.dll 文件
发表于 2011-10-21 18:31:59 | 显示全部楼层
请问前辈们,那个图标怎么修改,图标的格式有要求吗?
 楼主| 发表于 2011-10-22 08:55:07 | 显示全部楼层
DynWrapX.dll 注册后在LSP可以修改标题,但ICO图片不知道怎么设置,资料太少,目前还不会。
(vl-load-com)
(setq DWX (vlax-create-object "DynamicWrapperX"))
(vlax-invoke DWX 'Register "USER32" "SetWindowTextW" "i=lw" "r=l")
(vlax-invoke DWX 'SetWindowTextW (vla-get-hwnd (vlax-get-acad-object)) "守望月亮的树")
(vlax-release-object DWX)
使用之前要注册DynWrapX.dll ,这个你可以自己搜索下载
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 07:20 , Processed in 0.201853 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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