有如圖一這樣一個應用程序,分別拖動紅、綠、藍三個滾動框來決定文本框的背景色,另外還有一個豎向滾動條,可以用來控制文本框的大小。
圖一
一、圖像的著色問題:
自然界中千變?nèi)f化的色彩,在電腦上可以用紅綠藍三種原色組合而成,這也正是圖像處理軟件中 RGB 模式的原理所在,如黑色是由皆為 0 的紅綠藍三種顏色組成,白色為皆為 255 的三原色合成,等等。
在 RGB 模式中,每種色彩最多有 255 種變化,也就是說,只要 R 、G 、B 三種色彩都在各自的 255 范圍內(nèi),這種色彩就是有效的。
在 VB 中,也用 RGB 來作為色彩的描述,如文本框的背景色為白色,則表示為:Text1.Backcolor = RGB(255,255,255)。
二、VB 中對象的初值儲存問題:
在VB中,常常會對某個對象進行位置移動,或者動態(tài)改變對象的尺寸,一般情況下,都會在程序調入后先對原始數(shù)據(jù)進行一些存儲,以便發(fā)生位移或改變大小后能恢復原樣,而這一功能,是通過初值儲存來完成的。
方法是,將原始數(shù)據(jù),如坐標值、原始長寬高,等等,賦值給某個變量,最后通過變量的調用就能完成默認狀態(tài)的恢復。
三、程序設計:
1、創(chuàng)建如圖一的程序界面。
文本框的屬性:
Name:TxtContent Text:None
三個表示色彩的標簽:
紅色標簽,Name:LblRed Caption:紅色
綠色標簽,Name:LblGreen Caption:綠色
藍色標簽,Name:LblBlue Caption:藍色
三個表示色彩的橫向滾動條:
Min:0 Max:255 SmallChange:1 LargeChange:5
顯示“大小”字樣的標簽:
Name:LblSize Caption:大小
對文本框大小進行控制的豎向滾動條:
Name:VsbSize Min:0 Max:100 SmallChange:1 LargeChange:5
用于顯示大小變化尺寸的標簽:
Name:LblShow Caption:None
2、雙擊紅色滾動條,在彈出的程序代碼窗口中輸入:
Private Sub HsbRed_Change()
TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
End Sub
另外,就 HsbRed 的 Scroll 事件也輸入上面的代碼:
Private Sub HsbRed_Scroll()
TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
End Sub
3、同理所得,在綠色與藍色滾動條中輸入相應代碼。這樣,通過滾動條控制文本框背景色的目的達到了。
4、在“通用”選項中定義全局全量,用來儲存文本框的原始尺寸:
Dim Iwidth As Integer
Dim Iheight As Integer
5、用來改變文本框尺寸的豎向滾動條:
Change 事件:
Private Sub VsbSize_Change()
TxtContent.Width = Iwidth * (VsbSize.Value / 100)
TxtContent.Height = Iheight * (VsbSize.Value / 100)
LblShow.Caption = VsbSize.Value & "%"
End Sub
Scroll 事件:
Private Sub VsbSize_Scroll()
TxtContent.Width = Iwidth * (VsbSize.Value / 100)
TxtContent.Height = Iheight * (VsbSize.Value / 100)
LblShow.Caption = VsbSize.Value & "%"
End Sub
6、調試:
按 F5 鍵進行調試,發(fā)現(xiàn)文本框的尺寸無法調整。這是因為,沒有在初始狀態(tài)下將原文本框的寬度、高度賦值給變量。
在 Form 的 Load 事件中輸入以下代碼:
Private Sub Form_Load()
Iwidth = TxtContent.Width
Iheight = TxtContent.Height
LblShow.Caption = "100%
End Sub
7、最后結果如圖二:
圖二
------------------------------- · 相關文檔瀏覽 · --------------------------------------------------------------------- · 熱門文檔瀏覽 · -------------------------------------