狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

用vb6設計縮略圖技巧的圖片瀏覽器

用vb6設計縮略圖技巧的圖片瀏覽器

更新時間:2024-04-11 文章作者:未知 信息來源:網絡 閱讀次數:

相信每個編程愛好者都非常熟悉ACD SEE,它的縮略圖察看功能和對種類繁多的圖片文件的支持使它成為使用最廣泛的圖片瀏覽軟件之一。現在,我們也可以輕松的設計一個具有縮略圖察看功能的圖片瀏覽器,它能夠支持JPG、GIF、JPEG、BMP、WMF、DIB、ICO、CUR等格式圖片文件。

(一)編程思路;

  性能良好的圖片瀏覽器首先要能夠支持廣泛的圖片文件格式 ,這一點VB6基本控件picture已經為我們做好了。我們所要考慮的是如何將一幅圖片極其清晰的按照設定大小顯示到“容器”中——“容器”可以是多種多樣的,而且要充分利用動態創建和卸載控件技術,以便適應不同目錄所含有的不同個數的圖片,當然正確、有序排列縮略圖片也是非常關鍵的。

  我在這里向大家展示利用動態創建COMMAND(按鈕)控件作為載體的實現方法,它不僅可以以縮略圖方式進行圖片預覽和全屏圖片瀏覽,而且可以自動隨窗體的變化進行相應的伸展——注意本文關于界面容器、縮略圖載體容器和縮略圖載體的概念。

(二)界面設計;

  (1)添加四個command控件command(1——8)Style = 1 ’Graphical,caption屬性分別是“選擇”、“瀏覽”、“預覽”(縮略圖察看)、“上一張”、“下一張”、“向下”、“向上”、“退出”——這些按鈕用來進行系統相關操作,它們是可以添加圖片的;

  (2)添加一個filelist控件filhidden,設置其 Pattern= "*.bmp;*.dib;*.rle;*.gif;*.jpg;*.wmf;*.emf;*.ico;*.cur",visible=fales——該文件列表控件用來讀取選中目錄下的所有圖片文件名稱,程序運行時是不可見的;

  (3)添加picture控件picFrame作為界面容器;在其上面添加四個picture控件picSlide作為縮略圖載體容器,picload設置autosize=true作為緩沖圖片要以原格式裝載圖片,picThumb用來裝載縮略后的圖片;一個VScrollBarL控件vsbSlide——用來進行圖片調整,以便在縮略圖較多時能夠進行相應的調整,picture1用來全屏顯示圖片;設置上述所有圖片控件ScaleMode=3’Pixel;它們用來進行界面調整和縮略圖片的生成;

  (4)在縮略圖載體容器picslide上面添加命令按鈕command控件數組原型com(0),設置其 Style = 1 ’Graphical、Visible = 0 ;——用來作為縮略圖片的載體;

  (5)添加一個StatusBar控件St ——用來顯示有關的信息;

  (6)單擊"工程"菜單項目,選擇"部件",在部件對話框的"控件"欄目中選擇"MICROSOFT WINDOWS COMMON CONTROLS 6.0",確認在它前面的復選框中有一個黑色的對號,單擊"確認",添加對該控件的引用。添加一個progressbar控件pb——用來顯示縮略圖的集成進度;

  (7)添加定時器timer1——用來實行圖片的幻燈瀏覽;按層次調整上述控件到適當位置(如圖片1所示);



(三)程序源代碼;

Option Explicit
Dim Apath As String, Pi As Integer, bZ As Integer
.......

Private Declare Function StretchBlt Lib "GDI32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

//本函數用來對圖片進行縮放處理,生成縮略圖片
.......

Private Sub CreateThumbs()

//本函數用來創造縮略圖片,并且將它們放到足夠的

file://縮略圖載體com(i)中

Dim lIdx As Long
Dim lFilCnt As Long
Dim sText As String, i As Integer
Screen.MousePointer = vbHourglass

//設置鼠標指針為漏斗類型

picSlide.Move 0, 0, Com(0).Width, Com(0).Height
picSlide.Visible = True

//初始化縮略圖容器載體

Pr.Visible = True
Pr.Value = 0
Pr.Max = filHidden.ListCount
Pr.Min = 0

//啟動進度條

Com(0).Picture = LoadPicture
Com(0).Visible = False
If Com.Count > 1 Then
For i = 1 To Com.Count - 1
Unload Com(i)
Next
End If
$$$AGESEP$$$
//初始化縮略圖載體com

On Error Resume Next

file://忽略錯誤

file://lFilCnt = filHidden.ListCount
For lIdx = 0 To filHidden.ListCount - 1
Load Com(lIdx)
Com(lIdx).Caption = filHidden.List(lIdx)
Com(lIdx).Visible = True
Pr.Value = 1
Next lIdx

//創建所需要的所有縮略圖載體

file://載體的個數等于選定目錄下圖片文件個數

Call Form_Resize

//對載體進行排序

DoEvents
For lIdx = 0 To filHidden.ListCount - 1
picLoad.Picture = LoadPicture()
picThumb.Cls
picLoad.Picture = LoadPicture(Apath & filHidden.List(lIdx))
StretchBlt picThumb.hdc, 0, 0, picThumb.Width, picThumb.Height,picLoad.hdc, 0, 0, _ picLoad.ScaleWidth, picLoad.ScaleHeight, vbSrcCopy
Set Com(lIdx).Picture = picThumb.Image

//按順序為載體添加縮略圖片

DoEvents
Pr.Value = lIdx + 1
Next lIdx
Set picLoad.Picture = LoadPicture()
Set picThumb.Picture = LoadPicture()
Pr.Visible = False
Screen.MousePointer = 0

//釋放占用的資源、隱藏進度條、恢復鼠標指針

End Sub
.......
Private Sub filHidden_PathChange()
$$$AGESEP$$$
//當文件目錄改變時計算出標準的目錄變量

file://顯示有關的目錄和圖片文件個數信息

file://調用縮略圖創建過程函數

//......

CreateThumbs
End Sub
Private Sub Form_Resize()

file://本函數用來對程序界面控件位置進行相應的調整

file://并且調整縮略圖的位置

Dim X As Long
Dim Y As Long
Dim lIdx As Long
Dim lCols As Long
If Me.WindowState <> vbMinimized Then
If Me.Width < 600 * Screen.TwipsPerPixelX Then
Me.Width = 600 * Screen.TwipsPerPixelX
ElseIf Me.Height < 378 * Screen.TwipsPerPixelY Then
Me.Height = 378 * Screen.TwipsPerPixelY
end if

//限定軟件界面的最小寬度和高度

Else
picFrame.Move 2, Command1.Height, Me.ScaleWidth - 11, Me.ScaleHeight - Command1.Height - St.Height
vsbSlide.Move picFrame.ScaleWidth - vsbSlide.Width, 0, vsbSlide.Width, picFrame.ScaleHeight
lCols = Int((picFrame.ScaleWidth - vsbSlide.Width) / Com(0).Width)
For lIdx = 0 To Com.Count - 1
X = (lIdx Mod lCols) * Com(0).Width
Y = Int(lIdx / lCols) * Com(0).Height
Com(lIdx).Move X, Y
Next lIdx
picSlide.Width = lCols * Com(0).Width
picSlide.Height = Int(Com.Count /lCols)*Com(0).Height
If Int(Com.Count / lCols) < (Com.Count / lCols) Then
picSlide.Height = picSlide.Height + Com(0).Height
End If
vsbSlide.Value = 0
vsbSlide.Max = picSlide.Height - picFrame.ScaleHeight
If vsbSlide.Max < 0 Then
vsbSlide.Max = 0
vsbSlide.Enabled = False
Else
vsbSlide.Enabled = True
vsbSlide.SmallChange = Com(0).Height
vsbSlide.LargeChange = picFrame.ScaleHeight
End If
End If
Pr.Top = St.Top + 8
Pr.Left = St.Panels(4).Left + 6
Picture1.Move (picFrame.Width - Picture1.Width) / 2, (picFrame.Height - Picture1.Height) / 2
End Sub
........
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
$$$AGESEP$$$
file://如果被全屏瀏覽的圖片較大時

file://可以用鼠標拖動圖片來瀏覽全貌

ReleaseCapture
SendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
End Sub
.......
Private Sub vsbSlide_Change()

//當縮略圖較多時可以移動滑塊進行瀏覽

picSlide.Top = -vsbSlide.Value
End Sub

(四)運行調試

  本文程序展示了有關縮略圖預覽等的全部核心技術,至于界面、縮略圖載體容器和載體可以由編程愛好者們自由發揮、改造。為了加快縮略圖集成速度,大家可以考慮使用多線程內存文件映射技術——相信你很快就可以和ACD一較高下了!

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
精品sm捆绑视频| 亚洲高清久久久| 一区国产精品| 亚洲欧美日韩国产综合在线| 亚洲精品日本| 天天影视网天天综合色在线播放| 色国产综合视频| 国内精品伊人久久久久av影院| 精品裸体舞一区二区三区| 欧美va天堂在线| 亚洲福利国产精品| 欧美日韩一区视频| 91麻豆国产精品久久| 亚洲免费在线电影| 欧美吞精做爰啪啪高潮| 99久久久精品免费观看国产蜜| 成人免费小视频| 欧美在线观看你懂的| 成人免费毛片a| 亚洲欧美视频在线观看| 色丁香久综合在线久综合在线观看| 国产v综合v亚洲欧| 18欧美乱大交hd1984| 色美美综合视频| 99久久免费精品高清特色大片| 亚洲精品国产一区二区精华液 | 欧美一级理论片| 欧美亚州在线观看| 日本va欧美va精品| 久久久国产午夜精品| 欧美亚洲一区| 成人av综合一区| 亚洲一二三四久久| 欧美大肚乱孕交hd孕妇| 国产精品区免费视频| 懂色av中文字幕一区二区三区| 亚洲男人都懂的| 欧美乱熟臀69xxxxxx| 悠悠资源网久久精品| 国产综合成人久久大片91| 中文字幕亚洲精品在线观看| 欧美日韩精品是欧美日韩精品| 亚洲小说区图片区| 国产在线看一区| 一区二区三区中文在线| 精品免费一区二区三区| 媚黑女一区二区| 欧美日韩网址| 国产精品自在在线| 亚洲成av人片一区二区| 国产午夜精品一区二区| 欧美最猛黑人xxxxx猛交| 一区免费在线| www.激情成人| 久久电影网站中文字幕| 亚洲码国产岛国毛片在线| 欧美变态tickling挠脚心| 一本大道久久a久久综合| 噜噜噜在线观看免费视频日韩| 99精品久久免费看蜜臀剧情介绍| 青娱乐精品视频在线| 亚洲视频综合在线| 日韩免费高清视频| 欧美日韩在线三区| 亚洲免费影视| 国内精品久久国产| 狠狠狠色丁香婷婷综合激情| 一区二区三区欧美久久| 国产农村妇女精品| 日韩免费在线观看| 欧美性做爰猛烈叫床潮| 国产精品一国产精品k频道56| 欧美在线1区| 成人午夜视频在线| 久久99精品久久久久久国产越南| 亚洲午夜精品在线| 中文字幕人成不卡一区| 久久免费电影网| 日韩欧美另类在线| 欧美日韩精品系列| 91久久国产最好的精华液| 国产欧美一区二区视频| 国产专区一区| 欧美亚州在线观看| 午夜精彩国产免费不卡不顿大片| 成人黄页在线观看| 国产成人8x视频一区二区 | 亚洲国产一二三| 亚洲三级理论片| 国产精品每日更新| 亚洲国产精品99久久久久久久久| 2欧美一区二区三区在线观看视频| 欧美日韩国产天堂| 欧美日韩国产一级二级| 欧美亚洲免费在线一区| 色婷婷久久久综合中文字幕| 久久久青草婷婷精品综合日韩| 国产精品久久777777毛茸茸 | 国产在线日韩| 国内精品久久久久久久果冻传媒| 欧美久久一级| 免费在线成人av| 美女一区二区久久| 日韩黄色免费电影| 日韩精品一卡二卡三卡四卡无卡| 午夜精品福利久久久| 亚洲va欧美va人人爽午夜| 亚洲成a人v欧美综合天堂下载| 午夜精品久久久久久久| 午夜成人在线视频| 免费看日韩a级影片| 久久国产精品区| 国产成人福利片| 99精品视频一区二区三区| 91麻豆视频网站| 国内精品久久久久久久97牛牛| 亚洲国产一区在线| 美日韩在线观看| 欧美日韩中字一区| 日韩一区二区在线看| 欧美精品一区二| 综合婷婷亚洲小说| 一区二区免费视频| 喷水一区二区三区| 国产精品996| 91啦中文在线观看| 亚洲欧洲一二三| 色欧美乱欧美15图片| 欧美精品色综合| 久久精品一二三| 一区二区三区色| 蜜臀精品一区二区三区在线观看| 国产综合久久久久久鬼色| 不卡在线视频中文字幕| 一区视频在线| 91国偷自产一区二区三区成为亚洲经典| 欧美午夜不卡视频| 精品国产91久久久久久久妲己| 国产精品不卡一区| 五月激情六月综合| 粉嫩一区二区三区在线看| 欧美日韩影院| 久久国产日本精品| 日韩一级大片在线观看| 国产精品美女久久久久久久久| 香蕉影视欧美成人| 高清国产一区二区三区| 亚洲高清网站| 欧美区在线观看| 中文在线一区二区| 日本91福利区| 92国产精品观看| 欧美综合二区| 久久女同性恋中文字幕| 亚洲影视在线观看| 国产成a人亚洲精| 一区二区久久| 91精品国产综合久久久久久 | 国产精品久久99| 久久国产生活片100| 欧美精品一区二区三区久久久竹菊| 免费永久网站黄欧美| 精品免费99久久| 视频在线观看91| 91年精品国产| 欧美日韩一级片在线观看| 国产精品午夜免费| 久久99九九99精品| 亚洲国产91| 日韩精品一区二| 首页综合国产亚洲丝袜| 女同一区二区| 欧美日韩精品免费观看视频| 1024成人网| 国产成人aaa| 久久久国产精品一区二区三区| 久久久久97国产精华液好用吗| 日本成人中文字幕在线视频 | 欧美午夜片在线观看| 国产精品久久久久永久免费观看| 久久超碰97人人做人人爱| 亚洲成人中文| 久久只精品国产| 麻豆91在线观看| 国产伦精品一区二区三区照片91 | 成人激情av网| 欧美主播一区二区三区美女| 亚洲桃色在线一区| 国产成人精品免费一区二区| 久久午夜精品一区二区| 中文字幕亚洲成人| www.性欧美| 91精品国产91久久久久久最新毛片| 亚洲一区二区三区在线看| 欧美在线3区| 日韩欧美电影一区| 久久精品二区亚洲w码| 亚洲综合精品四区| 中文字幕日韩欧美一区二区三区| 懂色中文一区二区在线播放|