明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1726|回复: 4

[求助]我想要这样搞CAD的标题栏

[复制链接]
发表于 2004-6-20 11:58:00 | 显示全部楼层 |阅读模式
CAD2004里新增一个命令, 好象是Alt+0 或是 Ctrl+0 就能够反复地隐藏和显现CAD界面的标题栏.         我想那一定要用到API, 我在网上找了相关的资料, 但只有如何隐藏,而没有如何显现标题栏. 所以我的问题是: 如何显示被隐藏了的标题栏?         因为我也想在CAD2002里实现这种功能.

 楼主| 发表于 2004-6-20 12:08:00 | 显示全部楼层
这是我所能找到的相关内容的地址,请大家参考.

http://www.china-askpro.com/msg26/qa76.shtml
发表于 2004-6-20 14:33:00 | 显示全部楼层
  1. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  2. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  3. Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  4. Const GWL_STYLE = (-16)
  5. Const WS_CAPTION = &HC00000
  6. Const SWP_FRAMECHANGED = &H20
  7. Const SWP_NOMOVE = &H2
  8. Const SWP_NOSIZE = &H1
  9. Const HWND_TOP = 0
  10. Private hasTitleBar As Boolean
  11. Public Sub TitleBarChange()
  12.        Dim L As Long
  13.        L = GetWindowLong(Application.hwnd, GWL_STYLE)
  14.        If hasTitleBar Then
  15.                L = L Or WS_CAPTION
  16.        Else
  17.                L = L And Not (WS_CAPTION)
  18.        End If
  19.        L = SetWindowLong(Application.hwnd, GWL_STYLE, L)
  20.        hasTitleBar = Not hasTitleBar
  21.        SetWindowPos Application.hwnd, HWND_TOP, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE
  22. End Sub
上述代码放在ThisDrawing内将下列代码加入到AcadDoc200?.lsp文件内(defun c:tbc() (command "-vbarun" "TitleBarChange"))
 楼主| 发表于 2004-6-20 15:05:00 | 显示全部楼层
谢谢飞孤版主. 在声明里还再加一句


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


就能得到当前活动窗体的句柄.         用以替换Application.hwnd就能实现了.


送上一个小软以表示对这个大家庭的谢意.





这个东西解压后是一个可执行文件. 可是个小软而已哟.

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-6-21 12:23:00 | 显示全部楼层
很容易地就把这项功能加入了我的CAD2002里面来了. 唉, VB里的API真的是难以搞通的啊, 要不是lzh741206来帮忙, 我真的不知道还要加上 SetWindowPos 这个API来做处理呢. 下面是我的反馈, 成功了! 谢谢.

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-28 04:32 , Processed in 0.180386 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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