chmenf087 发表于 2011-8-28 03:31:26

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明经币的辛苦费吧(*^__^*) 嘻嘻……



czb203 发表于 2011-8-28 09:33:43

挺好的谢谢楼主提供这么优秀的资料

chpmould 发表于 2011-8-28 11:30:41

先留个记号,以备后用

XIAOQIU 发表于 2011-8-28 13:22:54

厉害,这么短的代码就实现了

chmenf087 发表于 2011-8-28 18:33:34

刚调试发现有些bug,过几天调试后会有改进版不过基本功能还是能够实现的,有了我的这个dll,dockbar工具条应该就能相对容易的实现了

飞诗(fsxm) 发表于 2011-8-28 23:53:41

不错,可以用来做图块管理程序

lrd1861 发表于 2011-8-29 00:33:12

很好很强大

suzhiyu 发表于 2011-8-30 16:51:42

需要动用底层接口,很有学习价值啊

哭泣殺豬 发表于 2011-8-31 08:50:12

謝謝大大的無私分享喔
精品+1

tjuzkj 发表于 2011-9-1 08:09:34

不错,有空学习下!
页: [1] 2 3 4 5
查看完整版本: DWG预览<完结篇>