DWG预览<完结篇>
本帖最后由 chmenf087 于 2011-8-28 03:32 编辑也许从我的上一篇帖子里你已经知道如何不依赖三方控件取得预览了,但是我们要的仅仅是这样么?从上一篇来看方法1取得的预览来看相当的模糊,方法二有个致命的缺陷那就是无法取得打开的CAD图形的预览图,不得不说很不理想,而且方法1取得的市8位色的索引位图,效果就可想而知的差了。到这里我们又不禁回想起DWGthumbnail2.0相对清晰的预览来了。聪明的你也许发现在浏览文件夹的时候当我们不是选择的市平铺模式而是缩略图模式浏览的时候cad文件的预览会清晰的展现在我们面前。OK到此已经清楚了,DWG文件仍然实现了windows下文件系统的图形预览接口。我们所要做的就是实现windows的预览接口。
先来一张效果图
perfect理想中的效果和dwgthumbnail完全相同的效果。(由于在实现预览的接口前需要先实现windows下folderbrowser的接口,而这部分需要比较高的com和net混合编程的需求所以源代码就不放出了,ps:俺也是从某论坛收集的但是添加了一些新的方法和属性,相信用惯VB的童鞋应该知道就是利用windows的API)下面介绍使用方法。在程序的引用里添加对chmenf087.dll的引用,记住复制本地要选True哦。
下面的程序需要一个窗体Form1,一个picturebox1,一个button1
Imports System
Imports System.Windows.Forms
Imports System.Collections
Imports system.Data
Imports System.Drawing
Imports chmenf087.Att.Components.Shell
Public Class Form1
Private WithEvents fd As FolderBrowser
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Using fd As FolderBrowser = New FolderBrowser()
fd.NewDialogStyle = True
fd.Title = "请选择预览文件(明经通道):"
fd.ShowEditBox = True
fd.NoNewFolderButton = True
fd.IncludeFiles = True
fd.FileSystemDirectoriesOnly = True
fd.OkButtonEnabled = True
fd.InitialPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
Dim tbn As ThumbnailCreater = New ThumbnailCreater
Dim bitm As Bitmap = Nothing
If fd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
tbn.DesireSize = New Drawing.Size(170, 80)
tbn.ReversBlackWhite = True
bitm = tbn.GetThumbNail(fd.SelectedPath)
If Not bitm Is Nothing Then
PictureBox1.Image = bitm
End If
End If
End Using
End Sub
End Class
chmenf087.dll在下面包含xml即时提示文件请一同考入
大半夜发帖,收1明经币的辛苦费吧(*^__^*) 嘻嘻……
挺好的谢谢楼主提供这么优秀的资料 先留个记号,以备后用 厉害,这么短的代码就实现了
刚调试发现有些bug,过几天调试后会有改进版不过基本功能还是能够实现的,有了我的这个dll,dockbar工具条应该就能相对容易的实现了 不错,可以用来做图块管理程序 很好很强大 需要动用底层接口,很有学习价值啊 謝謝大大的無私分享喔
精品+1 不错,有空学习下!