在VB中制作可滾動(dòng)的圖像顯示
我們?cè)谥谱鞫嗝襟w程序時(shí),不可避免的要涉及圖像的顯示,盡管VB中提供的picturebox可以顯示多種格式的圖像文件,但由于沒有提供滾動(dòng)條和縮放功能,在使用中多有不便。筆者在編制一多媒體程序時(shí),就需要對(duì)圖像進(jìn)行縮放顯示。這通常有兩種處理辦法,一是利用第三方控件,如Windows自帶的WANG圖像控件;二是利用VB的picturebox和滾動(dòng)條控件自行編程實(shí)現(xiàn)。兩種方法各有優(yōu)缺點(diǎn),可以根據(jù)需要具體選用。
一、利用第三方控件實(shí)現(xiàn)
在“工程”中選取“部件”,將WANG 圖像編輯控制添加到工具箱中,并在窗體中繪制出合適大小,按鼠標(biāo)右鍵,選取特性,設(shè)置好各種參數(shù)后加入程序代碼就行了,使用非常簡單,如果需要,在程序中也可加入一定的圖像編輯功能。采用第三方控件,功能較強(qiáng),程序編制也簡單一些,不失為一種好方法。但存在一些其他問題,比如本文采用的WANG 圖像編輯控制,在使用中就經(jīng)常出現(xiàn)“類沒有注冊(cè)”的錯(cuò)誤,解決此問題,要么修改注冊(cè)表,要么重裝系統(tǒng),很麻煩,所以在要求的功能不是很多的情況下,用第二種方法比較合適。以下就是使用WANG控
件的程序,可以看出,代碼很簡單。
Private Sub imgedit1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode ’定義功能鍵,+,-用以縮放圖像
Case vbKeyAdd
ImgEdit1.Zoom=imgedit1.zoom*1.2
Case vbKeySubtract
ImgEdit1.Zoom=imgedit1.zoom/1.2
End Select
ImgEdit1.Refresh
End Sub
Private Sub Form_Resize()
ImgEdit1.Top = 0
ImgEdit1.Left = 0
ImgEdit1.Height = Form1.ScaleHeight
ImgEdit1.Width = Form1.ScaleWidth
End Sub
Private Sub Form_Load()
imgedit1.image="a:\ddd.jpg"
ImgEdit1.ImagePalette = 3
ImgEdit1.Display
End Sub
二、利用VB的picturebox和滾動(dòng)條控件編程實(shí)現(xiàn)
PICTUREBOX控件能支持許多種圖像格式,但沒有縮放功能并且不自動(dòng)添加滾動(dòng)條,所以必須自行編程實(shí)現(xiàn)。應(yīng)用程序使用兩個(gè)圖片框,一個(gè)作為包容器,可稱之為父圖片框,另一個(gè)作為子圖片框顯示圖形,配合滾動(dòng)條控件在父圖片框內(nèi)移動(dòng)子圖片框就可實(shí)現(xiàn)畫面的滾動(dòng)。VB中提供了paintpicture方法,可以在窗體、圖片框上的任何地方繪制圖形,語法為 object.Pai
我們?cè)谥谱鞫嗝襟w程序時(shí),不可避免的要涉及圖像的顯示,盡管VB中提供的picturebox可以顯示多種格式的圖像文件,但由于沒有提供滾動(dòng)條和縮放功能,在使用中多有不便。筆者在編制一多媒體程序時(shí),就需要對(duì)圖像進(jìn)行縮放顯示。這通常有兩種處理辦法,一是利用第三方控件,如Windows自帶的WANG圖像控件;二是利用VB的picturebox和滾動(dòng)條控件自行編程實(shí)現(xiàn)。兩種方法各有優(yōu)缺點(diǎn),可以根據(jù)需要具體選用。
一、利用第三方控件實(shí)現(xiàn)
在“工程”中選取“部件”,將WANG 圖像編輯控制添加到工具箱中,并在窗體中繪制出合適大小,按鼠標(biāo)右鍵,選取特性,設(shè)置好各種參數(shù)后加入程序代碼就行了,使用非常簡單,如果需要,在程序中也可加入一定的圖像編輯功能。采用第三方控件,功能較強(qiáng),程序編制也簡單一些,不失為一種好方法。但存在一些其他問題,比如本文采用的WANG 圖像編輯控制,在使用中就經(jīng)常出現(xiàn)“類沒有注冊(cè)”的錯(cuò)誤,解決此問題,要么修改注冊(cè)表,要么重裝系統(tǒng),很麻煩,所以在要求的功能不是很多的情況下,用第二種方法比較合適。以下就是使用WANG控
件的程序,可以看出,代碼很簡單。
Private Sub imgedit1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode ’定義功能鍵,+,-用以縮放圖像
Case vbKeyAdd
ImgEdit1.Zoom=imgedit1.zoom*1.2
Case vbKeySubtract
ImgEdit1.Zoom=imgedit1.zoom/1.2
End Select
ImgEdit1.Refresh
End Sub
Private Sub Form_Resize()
ImgEdit1.Top = 0
ImgEdit1.Left = 0
ImgEdit1.Height = Form1.ScaleHeight
ImgEdit1.Width = Form1.ScaleWidth
End Sub
Private Sub Form_Load()
imgedit1.image="a:\ddd.jpg"
ImgEdit1.ImagePalette = 3
ImgEdit1.Display
End Sub
二、利用VB的picturebox和滾動(dòng)條控件編程實(shí)現(xiàn)
PICTUREBOX控件能支持許多種圖像格式,但沒有縮放功能并且不自動(dòng)添加滾動(dòng)條,所以必須自行編程實(shí)現(xiàn)。應(yīng)用程序使用兩個(gè)圖片框,一個(gè)作為包容器,可稱之為父圖片框,另一個(gè)作為子圖片框顯示圖形,配合滾動(dòng)條控件在父圖片框內(nèi)移動(dòng)子圖片框就可實(shí)現(xiàn)畫面的滾動(dòng)。VB中提供了paintpicture方法,可以在窗體、圖片框上的任何地方繪制圖形,語法為 object.Pai