找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 401|回复: 1

[求助]:请教关于vba里的zoom

[复制链接]
发表于 2005-5-25 17:05:29 | 显示全部楼层 |阅读模式

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

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

×
我有个程序,需要在里面多次执行ZOOM。

请教各位,在程序执行完毕后,如何最终ZOOM到原来的大小?

这样子用户看起来会比较容易接受。

换句话说,就是在多次连续的ZOOM之后,如何回到之前的某个状态?

ZoomPrevious 肯定不行的。它只能回复到上一个。

我的设想是:如果在这段程序执行以前能保存当前屏幕的两角点。

最后可以用 ZoomWindow 回去。

还有个想法,就是每次程序中Zoom,都接着调用

ZoomPrevious 。这样子屏幕就太闪烁了。


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

已领礼包: 181个

财富等级: 日进斗金

发表于 2005-5-27 19:34:31 | 显示全部楼层

  1.   [FONT=courier new]
  2. Sub Test()
  3.     ' 中心点坐标
  4.     Dim cPt As Variant
  5.     cPt = ThisDrawing.GetVariable("VIEWCTR")
  6.     ' 高度
  7.     Dim h As Double
  8.     h = ThisDrawing.GetVariable("VIEWSIZE")
  9.     ' 宽高比
  10.     Dim v As Variant
  11.     v = ThisDrawing.GetVariable("SCREENSIZE")
  12.     ' 宽度
  13.     Dim w As Double
  14.     w = h / v(1) * v(0)
  15.     ' 左下角坐标
  16.     Dim minPt(0 To 2) As Double
  17.     minPt(0) = cPt(0) - w / 2
  18.     minPt(1) = cPt(1) - h / 2
  19.     ' 右上角坐标
  20.     Dim maxPt(0 To 2) As Double
  21.     maxPt(0) = cPt(0) + w / 2
  22.     maxPt(1) = cPt(1) + h / 2
  23.     ' 缩放
  24.     Application.ZoomWindow minPt, maxPt
  25. End Sub
  26.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 01:16 , Processed in 0.189481 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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