明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12911|回复: 48

DWG预览<完结篇>

    [复制链接]
发表于 2011-8-28 03:31 | 显示全部楼层 |阅读模式
本帖最后由 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



  1. Imports System
  2. Imports System.Windows.Forms
  3. Imports System.Collections
  4. Imports system.Data
  5. Imports System.Drawing
  6. Imports chmenf087.Att.Components.Shell

  7. Public Class Form1
  8.     Private WithEvents fd As FolderBrowser

  9.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.         Using fd As FolderBrowser = New FolderBrowser()
  11.             fd.NewDialogStyle = True
  12.             fd.Title = "请选择预览文件(明经通道):"
  13.             fd.ShowEditBox = True
  14.             fd.NoNewFolderButton = True
  15.             fd.IncludeFiles = True
  16.             fd.FileSystemDirectoriesOnly = True
  17.             fd.OkButtonEnabled = True
  18.             fd.InitialPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
  19.             Dim tbn As ThumbnailCreater = New ThumbnailCreater
  20.             Dim bitm As Bitmap = Nothing
  21.             If fd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
  22.                 tbn.DesireSize = New Drawing.Size(170, 80)
  23.                 tbn.ReversBlackWhite = True
  24.                 bitm = tbn.GetThumbNail(fd.SelectedPath)
  25.                 If Not bitm Is Nothing Then
  26.                     PictureBox1.Image = bitm
  27.                 End If
  28.             End If
  29.         End Using
  30.     End Sub
  31. End Class


chmenf087.dll在下面包含xml即时提示文件请一同考入
大半夜发帖,收1明经币的辛苦费吧(*^__^*) 嘻嘻……



本帖子中包含更多资源

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

x
发表于 2011-8-28 09:33 | 显示全部楼层
挺好的谢谢楼主提供这么优秀的资料
发表于 2011-8-28 11:30 | 显示全部楼层
先留个记号,以备后用
发表于 2011-8-28 13:22 | 显示全部楼层
厉害,这么短的代码就实现了
 楼主| 发表于 2011-8-28 18:33 | 显示全部楼层
刚调试发现有些bug,过几天调试后会有改进版不过基本功能还是能够实现的,有了我的这个dll,dockbar工具条应该就能相对容易的实现了
发表于 2011-8-28 23:53 | 显示全部楼层
不错,可以用来做图块管理程序
发表于 2011-8-29 00:33 | 显示全部楼层
很好很强大
发表于 2011-8-30 16:51 | 显示全部楼层
需要动用底层接口,很有学习价值啊
发表于 2011-8-31 08:50 | 显示全部楼层
謝謝大大的無私分享喔
精品+1
发表于 2011-9-1 08:09 | 显示全部楼层
不错,有空学习下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 13:09 , Processed in 0.747200 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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