找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1297|回复: 10

[求助]:用VBA能修改ACAD的窗口标题TITLE文字吗?

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2002-6-27 22:47:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如题,谢谢!!

:9 :9 :9
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 23个

财富等级: 恭喜发财

发表于 2002-6-27 23:48:56 | 显示全部楼层
目前好像不行,没有提供方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 444个

财富等级: 日进斗金

发表于 2002-6-28 14:19:53 | 显示全部楼层
需要修改源程序的资源。用exescope试试,或是其它的汉化软件。都会有完成这种功能可能的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-28 16:30:36 | 显示全部楼层
很高兴发现这个空间。

这个问题VBA可以做,通过使用WIN32的API实现,可以去参考MSDN里面的 GetActiveWindow 和 SetWindowText两个API的用法。

下面是实现的VBA代码:

Public Declare Function GetActiveWindow Lib "user32" () As Long

Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal
hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

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

Sub ch_titlebar()
  Dim acadhnd As Long
  Dim titletxt As String
  Dim curtxt As String

  titletxt = "This is my version of AutoCAD."
  curtxt = Space(256)

  '获得ACAD主窗口句柄
  acadhnd = GetActiveWindow

  '获得当前TITLE BAR的文本.
  GetWindowText acadhnd, curtxt, 125
  MsgBox curtxt

  '设置新的文本到TITLE BAR
  SetWindowText acadhnd, titletxt
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-1 15:51:44 | 显示全部楼层
厉害
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-6 12:51:00 | 显示全部楼层

简单的来啦

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

Sub SetAcadTitle()
  Dim hw&
  hw = GetParent(GetParent(ThisDrawing.hwnd))
  SetWindowText hw, "我爱张宁"
End Sub


这个程序不是简单吗!
注意换行哦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-6 18:06:02 | 显示全部楼层
很有收获!我也想解决这个问题。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-6 18:32:45 | 显示全部楼层

Re: 简单的来啦

最初由 woaining 发布
[B]Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA"  
(ByVal hwnd As Long, ByVal lpString As String) As Long
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Lon... [/B]


woaining: 请教如何使用这段程序?是不是直接加载?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-7 08:38:57 | 显示全部楼层
我都试过了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-18 12:47:48 | 显示全部楼层
好像不行啊
试了没用啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-8-19 19:43:04 | 显示全部楼层
在Windows中,程序中的每一个界面都有一个唯一的标识符,称为窗口的句柄。因而要修改ACAD的标题,首先要获取它的句柄值,而在R2004以下的版本只有文档(Document)才有句柄(Hwnd属性),所以要使用两次GetParent来取得其父窗口的句柄,而在R2004中应用程序(Application)也有句柄的属性,故能直接使用。设置窗口的标题是使用SetWindowText。
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String) As Long
'上面的声明可以在安装VB后使用API浏览器查看获得,在窗体之内使用时只能声明为Private(私有),而在模块中可以使用Public(公共),即也可以在其它模块或者窗体中使用。
Sub SetAcadTitle()
Dim hw&
hw = GetParent(GetParent(ThisDrawing.hwnd))
SetWindowText hw, "我爱张宁"
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 18:36 , Processed in 0.323905 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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