狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
日韩视频免费直播| 91久久国产自产拍夜夜嗨| 亚洲在线观看免费| 国产精一品亚洲二区在线视频| 欧美一级电影网站| 亚洲成色精品| 欧美精品高清视频| 国产精品国产a级| 激情综合色综合久久| 色综合久久综合中文综合网| 色婷婷综合中文久久一本| 久久日韩精品一区二区五区| 亚洲成人1区2区| 91浏览器在线视频| 欧美三级电影在线看| 国产精品不卡在线观看| 国产成人午夜片在线观看高清观看| 亚洲视频中文| 精品久久久久久无| 老司机精品视频线观看86 | 欧美一区二区在线视频| 亚洲精品高清在线观看| 福利电影一区二区| 久久另类ts人妖一区二区| 亚洲国产电影在线观看| 国产成人日日夜夜| 日本高清不卡视频| 一区二区三区精密机械公司| www.欧美色图| 91精品国产91久久久久久最新毛片| 亚洲在线视频免费观看| 欧美日韩一区二区三区在线视频 | 91免费国产在线| 9191精品国产综合久久久久久 | 欧美日精品一区视频| 亚洲精品一二三| 欧美日韩综合久久| 精品对白一区国产伦| 久久超碰97中文字幕| 久久网站免费| 亚洲激情在线播放| 亚洲精品乱码久久久久久蜜桃麻豆| 久久综合久久综合九色| 国产黑丝在线一区二区三区| 欧美色视频在线| 麻豆一区二区99久久久久| 欧美日韩一级大片网址| 青青草视频一区| 在线影视一区二区三区| 午夜不卡在线视频| 噜噜噜躁狠狠躁狠狠精品视频| 综合久久给合久久狠狠狠97色| 色综合一个色综合亚洲| 精品成人一区二区| 成人午夜看片网址| 欧美不卡123| 91在线精品一区二区| 2024国产精品| 欧美在线国产| 国产精品私人影院| 精品99视频| 亚洲美女一区二区三区| 亚洲美女少妇无套啪啪呻吟| 亚洲视频 欧洲视频| 亚洲美女少妇无套啪啪呻吟| 亚洲免费高清视频在线| 国产精品推荐精品| 日韩精品成人一区二区三区| 国产精品入口66mio| jlzzjlzz亚洲日本少妇| 欧美大片日本大片免费观看| 久久精品国产99国产精品| 精品国产一区二区三区久久影院| 91在线porny国产在线看| 亚洲成人在线网站| 欧美一级欧美三级| 亚洲激情午夜| 国产精一品亚洲二区在线视频| 久久综合国产精品| 久久久久久久欧美精品| 成人午夜私人影院| 夜夜亚洲天天久久| 欧美色大人视频| 在线日韩av| 成人综合婷婷国产精品久久免费| 久久精品亚洲乱码伦伦中文| 久久青青草综合| 91亚洲精品久久久蜜桃| 日韩欧美一区二区视频| 精品影视av免费| 国产精品久久久久天堂| 欧美精品一卡二卡| 欧美在线播放高清精品| 精品国产91久久久久久久妲己| 成人性生交大片免费| 在线亚洲+欧美+日本专区| 国产高清精品久久久久| 中文字幕精品一区二区三区精品| 国产欧美高清| 国产麻豆精品在线观看| 国产精品乱码人人做人人爱| 一本大道久久a久久精二百| 福利电影一区二区三区| 自拍偷拍欧美激情| 欧美日韩一区二区三区在线| 欧美jjzz| 免费在线观看成人| 国产精品婷婷午夜在线观看| 色欧美片视频在线观看 | 亚洲资源av| 成人午夜视频在线观看| 亚洲人成精品久久久久| 91精品综合久久久久久| 亚洲精品乱码久久久久久蜜桃91| 国精品**一区二区三区在线蜜桃| 日本一二三四高清不卡| 欧美美女视频在线观看| 亚洲东热激情| 成人午夜视频福利| 日韩激情一区二区| 国产精品免费看片| 91精品国产一区二区| 国产亚洲欧洲| 欧美成人中文| 韩国在线一区二区| 亚洲国产日韩a在线播放| 日韩欧美中文字幕制服| 久久久久中文| 亚洲欧洲一区| 99久久精品99国产精品| 美日韩一区二区| 一区二区三区四区在线免费观看| 欧美大白屁股肥臀xxxxxx| 久久福利一区| 韩国av一区| av高清不卡在线| 久久精品国产亚洲a| 亚洲一区二区影院| 国产精品美女视频| 欧美成人精品二区三区99精品| 久色成人在线| 亚洲欧美日韩精品久久久| 国产精品观看| 91蜜桃在线免费视频| 成人一区二区三区在线观看| 久久国产精品色婷婷| 一区二区三区 在线观看视频| 国产精品网站一区| 久久女同精品一区二区| 日韩美一区二区三区| 欧美乱妇20p| 欧美三级日本三级少妇99| 久久综合精品一区| 亚洲一区二区三区四区五区午夜| 黄色av日韩| 国内精品视频在线播放| 91麻豆免费视频| 99r精品视频| 丁香啪啪综合成人亚洲小说| 激情成人综合网| 激情丁香综合五月| 国产综合色在线| 日本在线播放一区二区三区| 亚洲在线视频网站| 午夜精品福利久久久| 午夜日韩在线观看| 午夜在线成人av| 日韩中文字幕91| 午夜不卡av在线| 美女脱光内衣内裤视频久久网站| 日韩电影免费在线看| 日韩av中文字幕一区二区| 日韩影院免费视频| 麻豆成人久久精品二区三区红 | 国产午夜亚洲精品不卡| 精品久久免费看| 国产欧美精品一区二区色综合| 2020国产精品| 中文幕一区二区三区久久蜜桃| 国产精品丝袜91| 亚洲一区国产视频| 日韩综合一区二区| 九九视频精品免费| 国产91丝袜在线观看| 99久久精品免费看国产| 欧美福利专区| av成人毛片| 欧美性极品少妇| 欧美一级电影网站| 欧美韩国日本一区| 亚洲影院免费观看| 免费成人av资源网| 国产成人亚洲综合a∨婷婷图片| 成人晚上爱看视频| 欧美私人啪啪vps| 亚洲一区二区高清视频| 欧洲日韩一区二区三区| 日韩一区二区三区免费观看| 国产精品素人视频| 五月激情综合色|