在VB中制作圖標(biāo)按鈕的四種方法_第1頁(yè)
在VB中制作圖標(biāo)按鈕的四種方法_第2頁(yè)
在VB中制作圖標(biāo)按鈕的四種方法_第3頁(yè)
在VB中制作圖標(biāo)按鈕的四種方法_第4頁(yè)
在VB中制作圖標(biāo)按鈕的四種方法_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在VB中制作圖標(biāo)按鈕的四種方法2010-07-19 17:31發(fā)信人:huanghm (東方不?。艆^(qū):Program標(biāo)題:V B 中圖標(biāo)按鈕的制作發(fā)信站:深大荔園晨風(fēng)站 (Tue Jan 1 3 1 1:11:0 8 1998),轉(zhuǎn)信現(xiàn)在大多數(shù)Wi ndows應(yīng)用程序的功能都比較豐富,相應(yīng)的菜單結(jié) 構(gòu)也比較復(fù)雜。一些操作命令往往要打開(kāi)好幾層菜單。尤其是一些 常用的操作命令,因其使用較頻繁,即使僅打開(kāi)一層菜單,從中選擇 一項(xiàng)也是比較麻煩的。因此現(xiàn)在絕大多數(shù) Windows應(yīng)用程序中除了菜 單之外,還配備了工具欄。工具欄中有與常用菜單命令相對(duì)應(yīng)的按 鈕,按這些按鈕的效果和選擇菜單命令的效果完全

2、一樣。工具欄中 的按鈕和普通按鈕不同的是,它們不用文本字符串,而是用圖標(biāo)來(lái) 標(biāo)明按鈕的功能。這種圖標(biāo)按鈕的好處是省地方,菜單命令往往比 較冗長(zhǎng),而工具欄提供的空間又十分有限。使用圖標(biāo)按鈕最大的好 處還在于其直觀形象性,這與 Windows圖形用戶界面(GUI)方便用 戶、簡(jiǎn)化操作的目標(biāo)是一致的。Windows系統(tǒng)提供的標(biāo)準(zhǔn)按鈕(如 OK、Cancel等)中只能顯示文本字符串。在 Vi su al Basic (以下簡(jiǎn)稱為V B)中,按鈕是使用工具箱中的命令按鈕控件 CommandButton來(lái)實(shí)現(xiàn)的。CommandButton使用 的 是 Windows系 統(tǒng)提供的標(biāo)準(zhǔn)按鈕控件,因而無(wú)法裝入圖

3、標(biāo)。下面介紹在VB中實(shí)現(xiàn)圖標(biāo)按鈕的幾種方法。使用標(biāo)準(zhǔn)控件實(shí)現(xiàn)圖標(biāo)按鈕VB的標(biāo)準(zhǔn)控件中,能夠裝入圖形的只有Image (圖像)和PictureBox(圖片框)兩種。Image的功能較簡(jiǎn)單,占用系統(tǒng)資源較少。PictureBox的功能很豐富,可以將它看作是Image的一個(gè) 超集”,它占用的系統(tǒng)資源當(dāng)然就要多一些。為了利用可裝入圖形的控件模 擬圖標(biāo)按鈕的功能,首先應(yīng)比較一下它們各自所能夠接收到的事 件(如表1所示)。表1中打勾(M)的表示該控件提供了相應(yīng)的事件驅(qū)動(dòng)過(guò)程接口, 打叉(x)的則表示該控件沒(méi)有提供,控件不接收相應(yīng)的事件。因?yàn)?是 要模擬 CommandButton的 功能,所以Image和

4、 PictureBox的 其它事 件沒(méi)有 列出。Command Button 的 事件 I m age Pi ct u r eB oxCl ickWDragDrop WKeyD o w n xVKeyPr ess xVKeyU p xVL ost F oc u s xVMouse Down WM o u se M ove WMouseUp vV表 llmage 和 PictureBox 與 CommandButton 中相同 的事件從表1中可 以看出,PictureBox具有 CommandButton中所有事件的接口,因而 可以完 全模擬 CommandButton的 功能。CommandB

5、utton的 某些事件在Image中接收不到。對(duì)于一般應(yīng)用來(lái)說(shuō),我們往往只對(duì) CommandButton的 Click事件過(guò)程編程,因止匕Image也可以用于模擬CommandButton,而且能夠滿足大多數(shù)應(yīng)用的需要。注意,在沒(méi)有配備鼠標(biāo)的系統(tǒng)中,因?yàn)橹荒苁褂面I盤作為輸入設(shè)備,而Im age又沒(méi)有鍵盤事件的接口,這時(shí)就只能用PictureBox T oVB安裝到硬盤上之后,在 VB目錄下提供了豐富的圖形庫(kù)。其中包括位圖(Bitmap,在 BITMAPS子目錄下)、圖標(biāo)(Icon,在ICONS子目錄下)和圖元(Metafile,在METAFILE子目錄下)。每種圖形又按類分別 存儲(chǔ)在不同的子目

6、錄下。在圖標(biāo)按鈕的制作中,我們可以使用BITMAPS TOOLBAR3子目錄下的位圖。該目錄中存儲(chǔ)了常用工具欄中的按鈕的位圖,每種按鈕一般有三個(gè)位圖文件,分別對(duì)應(yīng)按鈕在松開(kāi)、按下和無(wú)效時(shí)的狀態(tài)。例如,CUT-UP.BMP、CUT-MDS. BMP和CU T-D I S. BM P分別對(duì)應(yīng)剪切(cut)按鈕在松開(kāi)、按下和無(wú)效時(shí)的狀態(tài)。因此,我們可讓按鈕在松開(kāi)時(shí)裝入*- UP. BM P ,按下時(shí)裝入*-MDS. BMP,按鈕無(wú)效時(shí)裝入*-DIS. BMP??梢跃帉懭缦碌南鄳?yīng)事件過(guò)程代碼(以PictureBox實(shí)現(xiàn)的剪切按鈕為例):SubPicture1_MouseDown(ButtonAsI n

7、 t eg er, Sh i f t As I nt eg er, X AsSi n gl e, Y A s Single)Pictured Pi cture= LoadPicture(C: V B B I T- M A PS TOO L B AR3 CUT-MDS. BMP)按下鼠標(biāo)按鈕時(shí),裝入按鈕被按下時(shí)的位圖E n d Su bSubPicture1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Picturel. Pi cture= LoadPicture(C: V B BITMAPS TOOLBAR3 CUT-U

8、P.BMP)松開(kāi)鼠標(biāo)按鈕時(shí),裝入按鈕被松開(kāi)時(shí)的位圖E n d Su bSu b P i ct u r e 1_ C l i ck ()此處插入單擊按鈕時(shí)的處理代碼E n d Su b如果需要設(shè)置按鈕的無(wú)效狀態(tài),則可使用如下語(yǔ)句:Picture1. Enabled = Fal sePictured Pi cture= LoadPicture(C: V B BIT-MAPS TOO L B AR3 C U T - D I S. B M P )裝入按鈕無(wú)效時(shí)的位圖當(dāng)按鈕恢復(fù)為有效時(shí),再使用下列語(yǔ)句:Picture1. Enabled = TruePictured Pi cture= LoadPict

9、ure(C: V B BITMAPS TOOLBAR3 CUT-UP.BMP)裝入按鈕松開(kāi)時(shí)的位圖這樣,我們就實(shí)現(xiàn)了用PictureBox模擬圖標(biāo)按鈕。用Image模擬圖標(biāo) 按鈕的方法與此完全相同。在程序中,一般用一個(gè)PictureBox作為工具 條,這里的 PictureBox作為容器(container) 控件,在 PictureBox中再加入各 個(gè)圖標(biāo)按鈕。這在多文檔界面(MDI)中的主窗體 MDIForm上尤其有必 要,因?yàn)槠胀丶荒苤苯蛹尤氲組DIForm中,只有具備Align屬性 的 PictureBox 才能力口入至I MDIForm。二、使用擴(kuò)充控件實(shí)現(xiàn)圖標(biāo)按鈕VB的擴(kuò)充控件

10、中有幾種能直接支持圖標(biāo)的按鈕。下面僅介紹其中的三種擴(kuò)充按鈕,即3D 命令鈕 (3DCommandButton) 、 3D 組按鈕 (3D GroupPushButton) 和動(dòng) 畫按鈕 (AnimatedButton)。 使用 這三種 控件制 作圖標(biāo)按鈕比起使用PictureBox或Image模擬的圖標(biāo)按鈕要方便得多。在 下面的介紹中,會(huì)給出每種控件對(duì)應(yīng)的文件名和控件的對(duì)象類型,如果在工具箱中找不到該控件,則在VB的菜單命令彈出的對(duì)話框中雙擊與該控件對(duì)應(yīng)的文件名(一般在 Windows的SYSTEM目錄 下),即可將該控件加入到工具箱中。對(duì)于擴(kuò)充控件接口的特性(屬性、事件和方法),我們僅介紹其

11、 擴(kuò)充的部分,與標(biāo)準(zhǔn)控件相同的其它接口則不再贅述。1、 3D Com m an d Bu t ton文件名為THREE D.VBX,對(duì)象類型為 SSCommand,屬性如表2所示。表2屬性數(shù)據(jù)類型定義AutoSizeInteger。(缺省狀態(tài))不調(diào)整尺寸;1 把裝入的圖片尺寸調(diào)整為按鈕的大小。如果裝入的圖片是一個(gè)圖標(biāo)(Icon)或按鈕本身有標(biāo)題,則該值不起作用;2 把按鈕的尺寸調(diào)整為裝入圖片的大小。如果按鈕本身有標(biāo)題,則該值不起作用。BevelW idth I nteger按鈕周圍斜角的寬度,取值范圍為010,缺省值為2。Font3D Integer設(shè)置標(biāo)題的立體顯示效果:0(缺省狀態(tài))無(wú)立體

12、效果;1 略微凸出;2 強(qiáng)烈凸出;3 略微凹進(jìn);4強(qiáng)烈凹進(jìn)。Outlinelnteger確定有無(wú)邊框,取值為 True (缺省狀態(tài))或 False。Pictureinteger位圖或圖標(biāo),不能是圖元。RoundedCornersInteger按鈕是否為 圓角,取值為 True (缺省狀態(tài))或 False。3DCommandButton 的屬性3DCommandButton是一個(gè)本身具有 Picture屬性的按鈕,用它可裝入一個(gè)圖片,同時(shí)它還具有按鈕的功能。3DCommandButton不能接收 Mouse Down和 MouseUp之類的鼠標(biāo)事件,因此不能像PictureBox那樣通過(guò)裝入不同

13、的圖片來(lái)顯示按鈕被按下和松開(kāi)的狀態(tài)。3DCommandButton之所以被稱為 3D”,是因?yàn)樗旧砟軌蛱幚戆粹o按動(dòng)時(shí)的三維視覺(jué)效果。用3DCommandButton制作圖標(biāo)按鈕時(shí),只需裝入一個(gè)按鈕松開(kāi)時(shí)的圖片(例如,CUT-UP. BMP)即可,其余的無(wú)需用戶操心。2、3DGroupPushButton文件名為THREE D. VBX,對(duì)象類型為 SSRibbon,屬性如表3所示。屬性數(shù)據(jù)類型定義AutoSizeI nteger0(缺省狀態(tài))不調(diào)整尺寸;1把裝入的圖片尺寸調(diào)整為按鈕的大小;2把按鈕的尺寸調(diào)整為裝入圖片的大小。BevelW idth I nteger按鈕周圍斜角的寬度,取值范圍

14、為02(缺省狀 態(tài))。GroupAll owAllUpI nteger是否允許同組內(nèi)的所有按鈕都處于松開(kāi)的狀態(tài)。取值為True (缺省狀態(tài))或False。當(dāng)設(shè)置組中一個(gè)按鈕的 GroupAllowAllUp屬性值時(shí),本組其它 按鈕的 GroupAllowAllUp屬 性也被 自動(dòng)設(shè)置為相同的值。GroupNumbe門nteger組號(hào)。取值為:0不屬于任何組,可 由用戶或程序代碼任意開(kāi)關(guān);1(缺省狀態(tài))99按鈕屬于該組號(hào)定義的 邏輯組。若在處于同一邏輯組的所有按鈕中按下某個(gè)按鈕時(shí),則另 外處于按下?tīng)顟B(tài)的按鈕會(huì)被自動(dòng)松開(kāi)。O u 11 i n e I n t eg er 同 3 D Co m m

15、an d B u tt o nPictureDi sabled I nteger 按 鈕被禁 止 (E n ab l ed 屬 性 為 False) 時(shí) 的 位 圖。PictureDnI nteger按鈕被按下時(shí)的位圖。PictureDnChangeI nteger 如 果 沒(méi)有 指 定 PictureDn,如 何 由 PictureUp 變換 出 PictureDn: 0PictureUp 不變;1(缺省狀態(tài))抖動(dòng) PictureUp。把PictureUp位圖中與BackC010r顏色相同的點(diǎn)每隔一個(gè)變成白色,這樣就產(chǎn)生了將該顏色加亮的效果;2將PictureUp位圖取反。PictureUp

16、I nteger按鈕松開(kāi)時(shí)的位圖Ro u nd edCorn ersI n t eger 同 3 D Com m an d Bu 11on 3DGroupPushButton 的 屬性 要 比 3DCommandButton 豐富 些, 一旦我們 在設(shè)計(jì)階段把按鈕各種狀態(tài)時(shí)的位圖加載好,在程序中就可不必理 會(huì)它了。如果圖形庫(kù)中只有按鈕松開(kāi)時(shí)的位圖,沒(méi)有按鈕按下時(shí)的 位圖,則還可以利用PictureDnChange屬性來(lái)加以彌補(bǔ)。3DGroupPush Button的另一個(gè)引人注目的特性是它能夠?qū)Χ鄠€(gè)按鈕進(jìn)行邏輯分組和 自動(dòng)控制,這一點(diǎn)無(wú)疑在實(shí)際應(yīng)用中增添了更多的功能和更大的靈 活性。3DGro

17、upPushButton是自鎖式的,即按動(dòng)后保持按下?tīng)顟B(tài),而不是 隨鼠標(biāo)鍵的松開(kāi)而彈起。要想讓按鈕重新彈起,還需再按一次,這同 錄音機(jī)上的暫停鍵相似。如果要讓3DGrou pPushButton表現(xiàn)得和普通按 鈕一樣,隨鼠標(biāo)鍵的松開(kāi)而彈起,則需對(duì)Click事件進(jìn)行編程。3DGroup Push Button的Click事件過(guò)程與普通按鈕稍有不同,其中增加了 一個(gè)整 型參數(shù)Value:SubGroupPush3D_Click(ValueAsInteger)Value可取值為True或False,分別代表按鈕的狀態(tài)是按下還是松開(kāi),3DGroupPush Button的 Value屬性與此相對(duì)應(yīng)。若

18、在 Click事件過(guò)程中 力口入語(yǔ)句:GroupPush3D. Value = False,貝U 可讓 3DGroupPushButton 表現(xiàn)得 和普通按鈕一樣,隨鼠標(biāo)鍵的松開(kāi)而彈起。3、 A n i m at ed B ut ton文件名為 AN I BU TON. VBX ,對(duì)象類型為 A n i Pu s h B u tt o n ,屬性如表4所 示。屬性數(shù)據(jù)類型定義C CB調(diào)出文件中存儲(chǔ)的圖像和按鈕屬性信息CCB把圖像和按鈕屬性信息存入文件。Cl earFir st Integer確定按鈕切換到下一幀前是否清掉前一幀,取值 為 True 或 False。CCckFilterInteg

19、er確定按鈕的哪部分能檢測(cè)到鼠標(biāo)單擊:0(缺省 狀態(tài))按鈕的任何部位都能檢測(cè)到鼠標(biāo)單擊;1鼠標(biāo)單擊必須位于標(biāo)題文本上或圖像框中才能被檢測(cè)到;2鼠標(biāo)單擊必須位于實(shí)際的圖像框中才能被檢測(cè)到;3鼠標(biāo)單擊必須位于標(biāo)題文本上才能被檢測(cè)到。Cy cl eI n teger控制動(dòng)畫的播放周期:0(缺省狀態(tài))用戶按動(dòng)按鈕時(shí)播放動(dòng)畫的前半部分,按鈕松開(kāi)時(shí)播放后半部分,最后回到第一幀;1 松開(kāi)按鈕時(shí)跳到下一幀,同時(shí)把 V a l u e屬性值加1。如果按 鈕處于最后一幀,單擊時(shí)則跳回第一幀。這是每次播放一幀的多態(tài)按鈕;2 第一次單擊按鈕時(shí),播放動(dòng)畫的前半部分,同時(shí)把 Value屬 性值從1變?yōu)?;再次單擊按鈕時(shí),

20、播放后半部分,按鈕回到第一幀, 同時(shí)把 Value屬性從2變回1。因此,這是一種二態(tài)按鈕。Frameinteger 設(shè)置 當(dāng) 前 幀 。HideFocusBoxInteger是否隱藏表示輸入焦點(diǎn)的虛線框,取值為True 或Fal se (缺省狀態(tài))。PictDrawModelnteger設(shè)置圖像(位圖或圖標(biāo))在按鈕中的繪畫方式:0 (缺省狀態(tài))用 PictureXpos和 PictureYpos屬性值確定圖像的位 置,用TextPosi ti on屬性控制標(biāo)題的位置。這些屬性用010 0的標(biāo)尺來(lái)控 制X和丫的位置;1自動(dòng)控制尺寸模式,按鈕尺寸調(diào)整到能放下最大圖像或標(biāo)題;2調(diào)整圖像的尺寸,擴(kuò)展或

21、壓縮圖像框以適應(yīng)按鈕的尺寸。這時(shí)標(biāo)題(如果有的話)總是顯示在按鈕的頂部(好像 T ex t - Po si t i o n 屬性為 0 一樣)。Picturel nteger 同 Form、 PictureBox 等PictureXposI nteger控制 按鈕中 圖PictureYposI nteger控制按鈕中 圖SpecialOpI nteger觸發(fā)一個(gè)特殊操被觸發(fā)。取值為:1模擬單擊;像的水平位置,取值為0100。像的垂直位置,取值為0100。作,當(dāng)該屬性取某個(gè)值時(shí),該操作 其它值無(wú)效。Sp ee d I n t eg e r設(shè)置間的延遲時(shí)間(毫秒)。取值范圍為0 (缺省狀態(tài))32 76 7TextPositionI nt eg er確定標(biāo)題的位置,同時(shí)也會(huì)影響圖像的位置。取值為:0 (缺省狀態(tài))標(biāo)題位置由TextXpos和TextYpos確定,圖像位置由 PictDrawMode、PictureXpos 和 PictureYpos 確定;1圖像在左邊, 標(biāo)題在右邊,標(biāo)題的垂直坐標(biāo)由TextYpos確定;2圖像在右邊,標(biāo)題在左邊,標(biāo)題的垂直坐標(biāo)由Text-Ypos確定;3 圖像在下邊,標(biāo)題在上邊,標(biāo)題的水平坐標(biāo)由TextXpos確定

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論