滾動(dòng)條常常用來(lái)附在某個(gè)窗口上幫助觀察數(shù)據(jù)或確定位置,也可以用來(lái)作為數(shù)據(jù)輸入的工具。在日常操作中,我們常常遇到這樣的情況:在某些程序中,如 Photoshop ,一些具體的數(shù)值我們并不清楚,如調(diào)色板上的自定義色彩,這時(shí),可以通過(guò)滾動(dòng)條,用嘗試的辦法找到自己需要的具體數(shù)值。 在 Visual Basic 中,滾動(dòng)條分為橫向(HscrollBar)與豎向(VscrollBar)兩種,命名規(guī)則為:HsbX 或 VsbX ,如 HsbShow、VsbShow ,等等。它們?cè)诠ぞ呦渖系膱D標(biāo)如圖一:
選中滾動(dòng)條按鈕,把鼠標(biāo)指針?lè)诺浇缑嬖O(shè)計(jì)區(qū),然后拖動(dòng),畫出符合自己要求的滾動(dòng)條,或者直接雙擊該按鈕,自動(dòng)在界面設(shè)計(jì)區(qū)生成默認(rèn)大小的滾動(dòng)條,如圖二所示:
一、滾動(dòng)條控件的屬性:
Max 與 Min 屬性是創(chuàng)建滾動(dòng)條控件必須指定的屬性,默認(rèn)狀態(tài)下, Max 值為 32767 ,Min 值為 0 。本屬性既可以在界面設(shè)計(jì)過(guò)程中予以指定,也可以在程序運(yùn)行中予以改變,如: HsbShow.Min = 3 2、Value(數(shù)值)屬性: Value 值可以在設(shè)計(jì)時(shí)指定,也可以在程序運(yùn)行中改變,如: HsbShow.Value = 24 3、SmallChange(小改變)屬性:
4、LargeChange(大改變)屬性:
二、滾動(dòng)條控件的事件: 三、示例:
1、創(chuàng)建界面。 2、雙擊滾動(dòng)條(HsbShow),進(jìn)入代碼編寫窗口: 3、滾動(dòng)條的拖動(dòng)事件:
Private Sub HsbShow_Scroll() LblShow.Caption = "拖動(dòng)中……" End Sub 有如圖一這樣一個(gè)應(yīng)用程序,分別拖動(dòng)紅、綠、藍(lán)三個(gè)滾動(dòng)框來(lái)決定文本框的背景色,另外還有一個(gè)豎向滾動(dòng)條,可以用來(lái)控制文本框的大小。
一、圖像的著色問(wèn)題: 在 RGB 模式中,每種色彩最多有 255 種變化,也就是說(shuō),只要 R 、G 、B 三種色彩都在各自的 255 范圍內(nèi),這種色彩就是有效的。 在 VB 中,也用 RGB 來(lái)作為色彩的描述,如文本框的背景色為白色,則表示為:Text1.Backcolor = RGB(255,255,255)。 二、VB 中對(duì)象的初值儲(chǔ)存問(wèn)題: 方法是,將原始數(shù)據(jù),如坐標(biāo)值、原始長(zhǎng)寬高,等等,賦值給某個(gè)變量,最后通過(guò)變量的調(diào)用就能完成默認(rèn)狀態(tài)的恢復(fù)。 三、程序設(shè)計(jì): 三個(gè)表示色彩的標(biāo)簽: 三個(gè)表示色彩的橫向滾動(dòng)條: 顯示“大小”字樣的標(biāo)簽: 對(duì)文本框大小進(jìn)行控制的豎向滾動(dòng)條: 用于顯示大小變化尺寸的標(biāo)簽: 2、雙擊紅色滾動(dòng)條,在彈出的程序代碼窗口中輸入: 另外,就 HsbRed 的 Scroll 事件也輸入上面的代碼: Private Sub HsbRed_Scroll() 3、同理所得,在綠色與藍(lán)色滾動(dòng)條中輸入相應(yīng)代碼。這樣,通過(guò)滾動(dòng)條控制文本框背景色的目的達(dá)到了。 4、在“通用”選項(xiàng)中定義全局全量,用來(lái)儲(chǔ)存文本框的原始尺寸: Dim Iwidth As Integer 5、用來(lái)改變文本框尺寸的豎向滾動(dòng)條: Scroll 事件: 6、調(diào)試: 在 Form 的 Load 事件中輸入以下代碼: Private Sub Form_Load() 7、最后結(jié)果如圖二:
在 Windows 應(yīng)用程序中常常要用到時(shí)間控制的功能,如在程序界面上顯示當(dāng)前時(shí)間,或者每隔多長(zhǎng)時(shí)間觸發(fā)一個(gè)事件,等等。而 Visual Basic 中的 Timer(時(shí)間)控制器就是專門解決這方面問(wèn)題的控件。 Timer 控制器在工具箱面板上的圖標(biāo)如圖一:
選中時(shí)鐘控制器,將鼠標(biāo)移到界面設(shè)計(jì)區(qū),在窗體中拖出一個(gè)矩形就可以創(chuàng)建一個(gè) Timer 控件了。跟其他控件不同的是,無(wú)論你繪制的矩形有多大,Timer 控件的大小都不會(huì)變,如圖二:
另外,Timer 控件只有在程序設(shè)計(jì)過(guò)程中看得見,在程序運(yùn)行時(shí)是看不見的。 一、Timer 控件的屬性: Interval 屬性決定了時(shí)鐘事件之間的間隔,以毫秒為單位,取值范圍為 0 ~ 65535 ,因此其最大時(shí)間間隔不能超過(guò) 65 秒,即一分鐘多一點(diǎn)的時(shí)間。如果把 Interval 屬性設(shè)置為 1000 ,則表示每秒鐘觸發(fā)一個(gè) Timer 事件。 其語(yǔ)法格式: 二、Timer 控件的 Timer (定時(shí))事件: 三、示例:
1、創(chuàng)建程序界面: 另外,別忘了把 Timer1 的 Interval 屬性設(shè)置為 1000 。
2、在 Timer1 的 Timer 事件中輸入以下代碼: Private Sub Timer1_Timer() 注意,Time 是 Visual Basic 中的關(guān)鍵詞,表示顯示系統(tǒng)時(shí)間。
在一個(gè)應(yīng)用程序中,對(duì)文件的處理是一個(gè)比較常用的操作,如打開文件、保存文件,等等。Visual Basic 提供了三個(gè)控件對(duì)磁盤文件夾與文件進(jìn)行顯示與操作,它們分別是:DriveListBox(磁盤列表框)控件、DirListBox(文件夾列表框)控件,以及 FileListBox(文件列表框)控件。如圖一:
一、DriveListBox(磁盤列表框)控件:
在窗口中創(chuàng)建的磁盤列表框可以自動(dòng)顯示電腦上或網(wǎng)絡(luò)上的所有磁盤驅(qū)動(dòng)器,另外,還可以通過(guò)語(yǔ)法設(shè)置運(yùn)行時(shí)顯示的驅(qū)動(dòng)器名稱,這就要用到 Drive 屬性。 磁盤列表框名稱.Drive = Drive(如 C: ,或者 D:,等等)。 比如,要在窗體啟動(dòng)時(shí)把當(dāng)前磁盤改為 F 盤,那么: Private Sub Form_Load()
二、DirListBox(文件夾列表框)控件:
文件夾列表框控件可以顯示與設(shè)置文件夾的路徑,當(dāng)用戶在窗口中創(chuàng)建 DirListBox 控件時(shí),雙擊其中的文件夾,不需進(jìn)行編程就能自動(dòng)顯示下一級(jí)的文件夾,如圖五:
本控件的主要屬性是 Path 屬性,用來(lái)返回或設(shè)置當(dāng)前文件夾的路徑,只能在程序運(yùn)行中使用,其語(yǔ)法是: 文件夾列表框名稱.Path = 具體的路徑 比如,我們要在窗體啟動(dòng)時(shí)把默認(rèn)顯示的文件夾改為 D:\Mytool\ ,程序可以這樣寫: Private Sub Form_Load() 三、FileListBox(文件列表框)控件:
文件列表框控件主要有兩個(gè)屬性,即 Path 屬性與 FileName 屬性,前者代表文件的路徑,從顯示路徑的功能上來(lái)說(shuō),比后者更簡(jiǎn)便一些;后者則用來(lái)返回或設(shè)置所選文件的路徑與文件名,其語(yǔ)法是: 文件列表框名稱.FileName = 路徑 比如,我們要在窗體啟動(dòng)時(shí)將 E:\稿件 目錄下的所有 ZIP 文件列出來(lái),程序可以這樣寫: Private Sub Form_Load() 結(jié)果如圖七:
四、三個(gè)控件的連接: 1、將磁盤列表框的操作賦值給文件夾列表框的 Path 屬性,在磁盤列表框的 Change 事件中輸入如下代碼: Private Sub Drive1_Change() 2、對(duì)文件夾列表框控件進(jìn)行的操作,直接影響文件列表框所顯示的內(nèi)容: Private Sub Dir1_Change() 最后結(jié)果如圖八:
窗體猶如一塊畫布,在設(shè)計(jì)時(shí)是程序的設(shè)計(jì)區(qū)域,而在運(yùn)行程序時(shí),每個(gè)窗體對(duì)應(yīng)于一個(gè)窗口。 一、窗體的結(jié)構(gòu):
系統(tǒng)菜單:Form1.ControlBox,點(diǎn)擊它可以彈出菜單命令。 標(biāo)題欄:Form1.Caption,顯示的窗口標(biāo)題,如本例中的“Form1”。 最小化按鈕:Form1.MinButton 。 最大化按鈕:Form1.MaxButton 。 二、窗體的主要屬性: 2、AutoRedraw(自動(dòng)重畫): 本屬性控制圖像的重建,常用于多窗體程序設(shè)計(jì)中,語(yǔ)法如下: 窗體名稱.AutoRedraw = True/False 當(dāng) AutoRedraw 設(shè)置為 True 時(shí),那么本窗體被另外的窗體覆蓋后,又回到此窗體時(shí),將自動(dòng)重新刷新或重畫窗體上的所有圖形;如果是 False ,則必須通過(guò)事件過(guò)程來(lái)設(shè)置這一操作。 默認(rèn)屬性為 False。如圖二:
3、BackColor(背景色)與 ForeColor(前景色):
后者用來(lái)指定文本或圖形的前景色,如圖四:
4、Height(高度)與 Width(寬度): 如要讓窗體的高度變?yōu)?200 ,寬度變?yōu)?300 ,那么程序應(yīng)該寫成: Private Sub Form1_Click() 5、Top(頂部)與 Left(左邊距)屬性: 要注意的是,隨對(duì)象的不同,這個(gè) Top 與 Left 的意義不同。當(dāng)對(duì)象是窗體,Top 指的是窗體頂部與屏幕頂部的相對(duì)距離,Left 指的是窗體左邊界與屏幕左邊界的間距;當(dāng)對(duì)象是其他控件時(shí),它們分別表示控件頂部、左邊與窗體頂部、左邊之間的距離,如圖五所示:
語(yǔ)法示例: Private Sub Form1_Click() 上面的語(yǔ)句會(huì)把 Form1 窗體移動(dòng)到距屏幕頂部 200 Twip ,距屏幕左邊距 300 Twip 的地方。 6、Visible(可見)屬性: 本屬性雖然簡(jiǎn)單,但卻是常常需要用到的,請(qǐng)大家牢記在心。 三、窗體的主要事件: 窗體最主要的事件,用來(lái)在啟動(dòng)程序時(shí)對(duì)屬性和變量進(jìn)行初始化。程序一旦運(yùn)行,將自動(dòng)觸發(fā)本事件。 2、UnLoad(卸載)事件: 3、Click(單擊)與 DblClick(雙擊)事件:
在以前的學(xué)習(xí)中,我們已經(jīng)接觸到了 Click 事件,實(shí)際上,對(duì)一個(gè)嚴(yán)謹(jǐn)?shù)某绦騺?lái)說(shuō),這種應(yīng)用不是很普遍,大家知道就行了。 Visual Basic 為編程人員提供了強(qiáng)大的繪圖功能支持,在本章,我們將學(xué)會(huì)基本的繪圖方法。 在 VB 中,主要通過(guò)兩種辦法進(jìn)行圖像繪制:一種是利用 ActiveX 控件,如用圖形框顯示圖片;另外一種是通過(guò)使用 VB 語(yǔ)言本身的函數(shù)和方法,通過(guò)在屏幕上繪制點(diǎn)、線和圖形來(lái)制作。 一、圖形框控件的主要屬性:
1、Name 屬性: 2、Picture(圖片)屬性: 對(duì)象.Picture = LoadPicture("圖形文件的路徑與名字") 如:PicMove.Picture = Loadpicture("c:\Picts\pen.bmp") 3、AutoSize(自動(dòng)顯示)屬性: 二、圖形框控件的主要事件: 三、圖像框控件(Image)的主要屬性: PictureBox 用 AutoSize 屬性控制圖形的尺寸自動(dòng)適應(yīng),而 Image 控件則用 Stretch 屬性對(duì)圖片進(jìn)行大小調(diào)整。如圖二:
四、圖像框與圖形框控件的區(qū)別: 圖形框作為一個(gè)“容器”,可以把其他控件放在其內(nèi)作為它的“子控件”,當(dāng)圖形發(fā)生位移,其內(nèi)的子控件也會(huì)跟著一起移動(dòng)。
2、圖形框可以通過(guò) Print 方法顯示與接收文本,而圖像框不能。 3、圖像框比圖形框占用內(nèi)存少,顯示速度更快一些,因此,在圖形框與圖像框都能滿足設(shè)計(jì)需要時(shí),應(yīng)該優(yōu)先考慮使用圖像框。
在本節(jié),我們要實(shí)現(xiàn)兩張不同圖片在同一個(gè)圖形框內(nèi)的切換,同時(shí)可以啟用與禁用圖形框的自動(dòng)適應(yīng)功能。
一、設(shè)計(jì): 圖形框控件: 自動(dòng)適應(yīng)復(fù)選框: 圖片切換按鈕: 2、先在通用區(qū)聲明如下變量: 其中,X 準(zhǔn)備用來(lái)做為圖片切換的條件,當(dāng) X 為 1 ,圖片切換按鈕可以切換到圖片二;當(dāng) X 為 2 ,圖片切換按鈕可以切換到圖片一。 IWidth 與 IHeight 準(zhǔn)備用來(lái)儲(chǔ)存圖形框的初始寬度與高度,以便在圖形框發(fā)生大小變化后回復(fù)到原樣。 3、程序打開時(shí)自動(dòng)載入圖片一: Private Sub Form_Load() 4、自動(dòng)適應(yīng)功能的實(shí)現(xiàn): 上面程序的意思是,如果復(fù)選框被選中,那么先將原始圖形框的寬度與高度賦給 IWidth、IHeight ,然后再通過(guò)激活 PicShow 的 AutoSize 功能達(dá)到圖形框的自動(dòng)適應(yīng);如果復(fù)選框沒(méi)被選中,那么禁止 PicShow 的 AutoSize 功能,然后將圖形框原來(lái)的高度(現(xiàn)在的 IHeight)和寬度(現(xiàn)在的 IWidth)賦值給圖形框以恢復(fù)原樣。 5、圖片切換: 在上面的程序中,先對(duì) X 進(jìn)行判斷,如果 X 為 1 ,那么圖形框顯示圖片二,顯示標(biāo)簽改變成“現(xiàn)在顯示的是第二張圖”字樣,作為圖形切換的按鈕, 二、聯(lián)想: 具體程序大家可以自行思考,此處不再贅述。
利用直線與形狀控件,可以使窗體上顯示的內(nèi)容更為豐富,如在窗體上增加簡(jiǎn)單的線條和實(shí)心圖形,等等。 利用直線控件,可以建立簡(jiǎn)單的直線,通過(guò)修改其屬性,還可以改變直線的粗細(xì)、色彩,以及線型。 通過(guò)設(shè)置形狀的屬性,用戶可以畫出圓、橢圓,以及圓角矩形,同時(shí)還能設(shè)置形狀的色彩與填充圖案。 主要屬性: 1、BorderStyle(邊框類型),實(shí)用于直線與形狀。 2、FillStyle(填充類型),實(shí)用于形狀。 3、Shape(形狀),實(shí)用于形狀。
Rectangle:矩形。 Square:正方形。 Oval:橢圓形。 Circle:圓形。 Rounded Rectangle:圓角矩形。 Rounded Square:圓角正方形。 除了前面談到的用控件顯示與繪制圖形的方法外,VB 還提供了一組龐大的方法用來(lái)繪制點(diǎn)、線、面,以及設(shè)置前景、背景色等各種方法。 一、設(shè)置當(dāng)前繪圖點(diǎn): 二、繪制點(diǎn)、線、面的方法: 對(duì)象名.Pset (X,Y),[Color] X ,Y 分別為點(diǎn)的水平與垂直坐標(biāo),Color 為點(diǎn)的顏色,是可選項(xiàng)。 2、直線的繪制法: 在對(duì)象上繪制直線,語(yǔ)法如下: 對(duì)象名.Line (X1,y1) - (X2,Y2), [Color] (X1,Y1) 是直線的起點(diǎn),(X2,Y2)是直線的終點(diǎn),Color 為可選項(xiàng)。 如圖一:
2、圖形框的代碼是: 3、繪制矩形: 對(duì)象名.Line (X1,Y1) - (X2,Y2), [Color], B ,[F] 其中,(X1,Y1) 是矩形的左上角座標(biāo),(X2,Y2)是矩形右下角座標(biāo),Color 為矩形邊框的顏色,使用參數(shù) B 而不用 F ,那么矩形用當(dāng)前的填充色(FillColor)與填充方式(FillStyle)對(duì)矩形進(jìn)行填充;如果使用了參數(shù) F ,那么矩形以邊框的顏色進(jìn)行填充。如圖二:
特別注意,用 Line 畫矩形框,如果不用其他參數(shù),那么 B 與坐標(biāo)(X2,Y2)之間應(yīng)該有兩個(gè)逗點(diǎn),一個(gè)是緊跟坐標(biāo)2,一個(gè)表示 Color 省略了,如:Picture1.Line (500,500) - (1000,1000),,B 4、繪制圓、橢圓、弧: 對(duì)象名.Circle (X,Y), Radius, [Color,start,end,aspect] 其中,(X,Y)是圓、橢圓或弧的圓心坐標(biāo),Radius 是半徑,這兩個(gè)參數(shù)是必須項(xiàng);Color 是圓的輪廓色,Start 與 End 是弧的起點(diǎn)與終點(diǎn)位置。其范圍是 -2 —— 2Pi ;Aspect 是圓的縱橫尺寸比,默認(rèn)值是 1 即圓,如圖三:
三、顏色、前景與背景色的設(shè)置: RGB(Red,Green,Blue) 不要忘了,Red、Green、Blue 每種色彩各有 0——255 種成份,三種色彩不同參數(shù)的搭配,就產(chǎn)生了豐富多采的現(xiàn)實(shí)世界。 2、前景色的設(shè)置: 3、背景色的設(shè)置: 4、圖形的清除: 對(duì)象名.Cls
|
|