vb做cad图形预览图形失真!

lovessll 2009-09-03 02:24:55
我用vb做了一个图片框,想做cad的图形预览。我开始的思路是想提取cad图形中图形的边界坐标,然后在vb中画出图形。但一直不知道该怎么得到图形的边界坐标。所以现在换了个思路,我把cad的图形输出,然后在vb中用图片框加载。

代码如下:

Dim Exportfile As String
Me.Picture1.Width = Me.Picture1.Height * (Acadapp.ActiveDocument.Width / Acadapp.ActiveDocument.Height)
Exportfile = App.Path & "\PIC\显示图"
'创建选择集
Dim SSet As AutoCAD.AcadSelectionSet
Set SSet = Acadapp.ActiveDocument.SelectionSets.Add("test")
SSet.Select (AutoCAD.AcSelect.acSelectionSetAll)

'输出当前图形到文件
Acadapp.ActiveDocument.Export Exportfile, "wmf", SSet

SSet.Delete
Picture1.Picture = LoadPicture(App.Path & "\PIC\显示图.wmf")

但是出来的图形比例失真,要么太小,要么图形显示只有一半在图片框中。这个该如何调整啊!

vb中的图片框控件的大小和位置是固定的,这个该怎么弄啊?
...全文
535 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
clear_zero 2009-09-03
  • 打赏
  • 举报
回复
你在导出的时候是不是可以zoomextens一下不知道是不是管用

Tiger_Zhao 2009-09-03
  • 打赏
  • 举报
回复
改用 Image 控件,预先拖好大小,并且设置属性 Stretch = True,就会自动缩放了。
fly896403 2009-09-03
  • 打赏
  • 举报
回复

Private Sub Command1_Click()
CommonDialog1.ShowOpen
Set Picture1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub

Private Sub Form_Load()
Form1.WindowState = 2
Picture1.AutoSize = True
End Sub

是不是LZ前后代码有什么逻辑错误?(猜测)保持picturebox和图片大小一样用AutoSize 应该是没问题的。
lovessll 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fly896403 的回复:]
Form1.WindowState = 2
Picture1.AutoSize = True
不知道LZ是不是这个意思
[/Quote]
我哟用过啦,如果加上:Picture1.AutoSize = True
图形就没有啦!
fly896403 2009-09-03
  • 打赏
  • 举报
回复
Form1.WindowState = 2
Picture1.AutoSize = True
不知道LZ是不是这个意思
threenewbee 2009-09-03
  • 打赏
  • 举报
回复
Picture的autosize设置为true
放2个picture,外面的作为容器。
里面的放图片,给外面的加上滚动条。然后move里面的picture。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧