第11章補充 界面設(shè)計_第1頁
第11章補充 界面設(shè)計_第2頁
第11章補充 界面設(shè)計_第3頁
第11章補充 界面設(shè)計_第4頁
第11章補充 界面設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章界面設(shè)計在Windows環(huán)境下,幾乎所有的應(yīng)用軟件都通過菜單實現(xiàn)各種操作。本章介紹在VB中用戶界面設(shè)計的工具和方法,包括:通用對話框、菜單、工具欄等。7.1對話框控件在VB中,對話框是一種特殊的窗口,它通過顯示和獲取信息與用戶進行交流,一個對話框可以很簡單,也可以很復(fù)雜,前面介紹的MsgBox和InputBox函數(shù)可以建立簡單的對話框,即信息框和輸入框。但是要定義的對話框較復(fù)雜時,將會花較多的時間和精力設(shè)計和書寫代碼,為此,VisualBasic6.0提供了通用對話框控件,用其可以定義比較復(fù)雜的對話框(通用對話框)。要把通用對話框控件加到工具箱中,可按如下步驟操作:(1)

執(zhí)行“工程”菜單中的“部件”命令,打開“部件”對話框。(2)

選擇“控件”選項卡,如圖7-1所示,在控件列表框中選擇“MicrosoftCommonDialogControl6.0”。圖7-1部件對話框(3)

單擊“確定”按扭,通用對話框即被添加到工具箱中,如圖7-2所示。在設(shè)計狀態(tài)下,CommonDialog控件以圖標(biāo)的形式顯示在窗體上,其大小不能改變,在程序運行時,控件本身被隱藏。CommonDialogCommonDialog圖7-2通用對話框通用對話框的默認(rèn)名稱(Name屬性)為CommonDialogX(X為1,2,3……)。通用對話框控件為程序設(shè)計人員提供了幾種不同類型的對話框,有文件對話框、打印對話框、字體對話框、顏色對話框等。利用這些對話框,可以獲取所需要的信息,例如打開文件、打印、存盤、選擇顏色等。這些對話框與Windows本身及商業(yè)程序具有相同的風(fēng)格。對話框的類型可以通過Action屬性設(shè)置,也可以使用說明性的Show方法來代替Action屬性值。Action屬性和Show方法如表7-1。表7-1Action屬性和Show方法Action屬性Show方法說明1ShowOpen顯示文件打開對話框2ShowSave顯示另存為對話框3ShowColor顯示顏色對話框4ShowFont顯示字體對話框5ShowPrinter顯示打印機對話框6ShowHelp顯示幫助對話框通用對話框具有的主要共同屬性為:(1)

CancelError屬性:通用對話框里有一個“取消”按扭,用于向應(yīng)用程序表示用戶想取消當(dāng)前操作。當(dāng)CancelError屬性設(shè)置為True時,若用戶單擊“取消”按扭,通用對話框自動將錯誤對象Err.Number設(shè)置為32755(cdlCancel)以便供程序判斷。若CancelError屬性設(shè)置為False,則單擊“取消”按扭時不產(chǎn)生錯誤信息。(2)

DialogTitle屬性:每個通用對話框都有默認(rèn)的對話框標(biāo)題,通過DialogTitle屬性可由用戶自行設(shè)計對話框標(biāo)題上顯示的內(nèi)容。(3)Flags屬性:通用對話框的Flags屬性可以修改每個具體對話框的默認(rèn)操作,其值可有3種形式,即符號常量、十六進制數(shù)和十進制數(shù)。(4)HelpCommand屬性:指定Help的類型。(5)HelpContext屬性:用來確定HelpID的內(nèi)容,與HelpCommand屬性一起使用,指定顯示的Help主題。(6)HelpFile和HelpKey屬性:分別用來指定Help應(yīng)用程序的Help文件名和Help主題能夠識別的名字。

7.1.1文件對話框的結(jié)構(gòu)文件對話框有打開(Open)文件對話框和保存(Save)對話框,如圖7-3所示為打開對話框,在該對話框中用戶可以打開一個文件供程序調(diào)用。“保存”對話框有類似的結(jié)構(gòu),可以指定一個文件名來保存當(dāng)前文件。通用對話框用于文件操作時需要對下列屬性進行設(shè)置。InitDirFileNameFilterInitDirFileNameFilter圖7-3打開對話框(1)

DefaultEXT:設(shè)置對話框中默認(rèn)文件類型,即擴展名。該擴展名出現(xiàn)在“文件類型”欄內(nèi)。如果在打開或保存的文件名中沒有給出擴展名,將自動將DefaultEXT屬性值作為其擴展名。(2)

DialogTitle:此屬性用來設(shè)置對話框的標(biāo)題。在默認(rèn)情況下,“打開”對話框的標(biāo)題是“打開”,“保存”對話框的標(biāo)題是“保存”。(3)

FileName:該屬性值為字符串,用于設(shè)置和得到用戶所選的文件名(包括路徑名)。(4)

FileTitle:該屬性用來指定對話框中所選擇的文件名(不包括路徑),該屬性與FileTitle屬性的區(qū)別是:FileName屬性用來指定完整的路徑,而FileTitle只指定文件名。(5)

Filter:該屬性用來過濾文件類型,使文件列表框中顯示指定的文件類型??梢栽谠O(shè)計時設(shè)置該屬性,也可以在代碼中設(shè)置該屬性。Filter的屬性值由一對或多對文本字符組成,每對字符串間要用“|”隔開,格式為:文件說明1|文件類型1|文件說明2|文件類型2例如要在打開對話框的“文件類型”列表框中顯示如圖7-3所示的文件類型,則Filter屬性應(yīng)設(shè)置為:CommonDialog1.Filter=文本文件|*.txt|Word文檔|*.doc(6)

InitDir:該屬性用來指定打開對話框中的初始目錄。如果要顯示當(dāng)前目錄,則該屬性不需要設(shè)置?!纠?.1】編寫程序,建立“打開”和“保存”對話框。根據(jù)上述方法在窗體上畫一個通用對話框,以屬性的默認(rèn)值Name屬性取默認(rèn)值,即CommonDialog1,再建立兩個命令按扭Command1和Command2,然后編寫兩個事件過程:PrivateSubCommand1_Click()CommonDialog1.FileName=""CommonDialog1.Flags=vbOFNFileMustExistCommonDialog1.Filter="AllFiles|*.*|(*.exe)|*.exe|(*.TXT)_|*.TXT"CommonDialog1.FilterIndex=3CommonDialog1.DialogTitle="OpenFile(*.EXE)"CommonDialog1.Action=1'打開對話框IfCommonDialog1.FileName=""ThenMsgBox"NofileSelected",37,"Checking"ElseOpenCommondialog1.FileNameForInputAs#1DoWhileNotEOF(1)Input#1,a$Printa$LoopEndIfEndSubPrivateSubCommand2_Click()CommonDialog1.CancelError=TrueCommonDialog1.DefaultExt="TXT"CommonDialog1.FileName="lbw.txt"CommonDialog1.Filter="Textfiles(*.txt)|*.TXT|ALLFiles(*.*_)|*.*"CommonDialog1.FilterIndex=1CommonDialog1.DialogTitle="SaveFileAs(*.TXT)"CommonDialog1.Flags=vbOFNOverwritePromptOrvbOFN_PathMustExistCommonDialog1.Acion=2'保存對話框EndSubOpen對話框并不能真正“打開”文件,而僅僅是用來選擇一個文件,至于選擇以后的處理,包括打開、顯示等,Open對話框是沒有能力完成的,前半部分用來建立Open對話框,設(shè)置對話框的各種屬性;“Else”之后的部分用來對選擇的文件進行處理。7.1.2“顏色”對話框“顏色”對話框的方法是ShowColor,Aciton為3的通用對話框,如圖7-4顏色對話框,在顏色對話框中提供了基本顏色和自定義顏色?!邦伾睂υ捒虻膬蓚€重要屬性:Color屬性和Flags屬性。其中Color屬性是“顏色”對話框最重要的屬性,它返回或設(shè)置選定的顏色。當(dāng)用戶在調(diào)色板中設(shè)置了某顏色時,該顏色值賦給Color屬性。Color屬性用來設(shè)置初始顏色,并把對話框中選擇的顏色返回給應(yīng)用程序。圖7-4顏色對話框

表7-2顏色對話框的Flags屬性的取值符號常量十進制值作用vbCCRGBinit1使得Color屬性定義的顏色在首次顯示對話框時隨著顯示出來vbCCFullOpen2打開完整對話框,包括“用戶自定義顏色”窗口vbCCPreventFullOpen4禁止選擇“規(guī)定自定義顏色”按扭vbCCShowHelp8顯示一個Help按扭

【例7.2】在例7.1的窗體上增加命令按扭Command3,用于打開顏色對話框,通過“顏色”對話框設(shè)置窗體(Form1)的背景顏色。代碼如下:PrivateSubCommand3_Click()CommonDialog1.Flags=vbCCRGBinitCommonDialog1.Color=BackColorCommonDialog1.Action=3Form1.BackColor=CommonDialog1.ColorEndSub為了設(shè)置或讀取Color屬性,必須將Flags屬性設(shè)置為1(vbCCRGBinit)。7.1.3“字體”對話框在VisualBasic中,字體通過字體(Font)對話框?qū)傩栽O(shè)置。利用通用對話框控件,可以建立一個字體對話框,并可以通過該對話框設(shè)置應(yīng)用程序所需要的字體。字體對話框的主要屬性:(1)CancleError,DialogTitle,HelpCommand,HelpContext,HelpFile和HelpKey見前面介紹。(2)Flags屬性:其屬性值見表7-3。表7-3字體對話框的Flags屬性取值符號常數(shù)屬性值作用cdlCFScreenFonts1只顯示屏幕字體cdlCFPrinterFonts2只列出打印機字體cdlCFBoth3列出打印機和屏幕字體cdlCFEffects256允許中劃線、下劃線和顏色(3)Max和Min屬性:字體大小用點來度量。在默認(rèn)情況下,字體大小的范圍為1~2048個點,用Max和Min屬性可以指定字體大小的范圍(在1~2048之間的整數(shù))。但是在設(shè)置Max和Min屬性之前,必須把Flags屬性設(shè)置為8192。(4)

FontBold,F(xiàn)ontItalic,F(xiàn)ontName,F(xiàn)ontSise,F(xiàn)ontStrikeThru,F(xiàn)ontUnderLine這些屬性可以在字體對話框中選擇,也可以通過程序代碼賦值?!纠?.3】用字體對話框設(shè)置文本框中顯示的字體。在窗體上建立通用對話框CommonDialog1、文本框Text1、和命令按扭Command1,如圖7-5所示。在命令按扭中編寫Click事件代碼如下:圖7-5初始界面PrivateSubCommand1_Click()CommonDialog1.Flags=cdlCFBothorcdlCFEffects'設(shè)置FlagsCommonDialog1.ShowFontIfCommonDialog1.FontName>""Then'如果選擇了字體Text1.FontName=CommonDialog1.FontNameEndIf'下面設(shè)置文本框內(nèi)的字體Text1.FontSize=CommonDialog1.FontSizeText1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethruText1.FontUnderline=CommonDialog1.FontUnderlineText1.ForeColor=CommonDialog1.ColorEndSub上面的程序首先設(shè)置通用對話框的Flags的屬性,從而可以得到如圖7-6的對話框。圖7-6字體對話框程序運行結(jié)果如圖7-7所示。圖7-7調(diào)試結(jié)果7.1.4“打印”對話框“打印”對話框是當(dāng)Action為5時的通用對話框,可以通過“打印”對話框的名稱框選擇打印機,通過“打印”對話框的“屬性”按扭設(shè)置打印機的屬性?!按蛴 睂υ捒虿⒉荒芴幚泶蛴」ぷ鳎瑑H僅是一個供用戶選擇打印參數(shù)的界面,所選參數(shù)存于各屬性中,再通過編寫程序來實現(xiàn)打印機操作。打印對話框的主要屬性如下:(1)Copies屬性:指定要打印的文檔的拷貝數(shù)。(2)FromPage和ToPage屬性:指定要打印的文檔的頁范圍。(3)hDC屬性:分配給打印機的句柄,用來識別對象的設(shè)備環(huán)境,用于API調(diào)用。(4)Max和Min屬性:用來限制FromPage和ToPage的范圍,其中Min指定所允許的起始頁碼,Max指定所允許的最后頁碼?!纠?.4】在窗體上創(chuàng)建一個通用對話框、一個文本框和一個命令按扭,建立打印對話框,打印文本框中的信息。PrivateSubCommand1_Click()CommonDialog1.ShowPrinterForI=1ToCommonDialog1.CopiesPrinter.PrintText1.TextNextiPrinter.EndDocEndSub程序執(zhí)行如圖7-8的打印對話框。圖7-8的打印對話框

7.1.5“幫助”對話框“幫助”對話框可以用于制作應(yīng)用程序的聯(lián)機幫助?!皫椭睂υ捒虮旧聿荒芙?yīng)用程序的幫助文件,只能將已經(jīng)創(chuàng)建好的幫助文件從磁盤中提取出來,并與界面連接起來,從而能夠顯示并搜索幫助信息的目的。創(chuàng)建幫助文件需要用“幫助”編輯器生成幫助文件。幫助對話框涉及到的重要屬性有:(1)HelpCommand:返回或設(shè)置所需要的聯(lián)機Help幫助類型。(2)HelpFile:指定Help文件的路徑以及文件名稱。從而找到幫助文件,再從中找到相應(yīng)內(nèi)容,顯示在Help窗口中。(3)HelpKey:該屬性用于在幫助窗口中顯示由該關(guān)鍵字指定的幫助信息。(4)HelpContext:其返回或設(shè)置所需要的HelpTopic的ContextID,一般與HelpCommand屬性(設(shè)置為vbHelpContents)一起使用,指定要顯示的HelpTopic。【例7.5】設(shè)計一個調(diào)用VB.hlp的程序。PrivateSubCommand1_Click()CommonDialog1.HelpCommand=cdlHelpContentsCommonDialog1.HelpFile="C:\Windows\help\notepad"CommonDialog1.HelpKey="dlakglk"CommonDialog1.ShowHelpEndSub

7.2菜單設(shè)計在Windows環(huán)境下,幾乎所有的應(yīng)用軟件都通過菜單實現(xiàn)各種操作。菜單是圖形化用戶界面一個必不可少的組成元素,通過菜單對各種命令按功能進行分組,使用戶能夠更加方便、直觀地訪問這些命令。Windows環(huán)境下的應(yīng)用程序一般為用戶提供兩種菜單:下拉菜單與快捷菜單。下拉式菜單位于窗口的頂部,彈出式快捷菜單是獨立于窗體而顯示在窗體內(nèi)的浮動菜單。如圖7-9說明了下拉式菜單系統(tǒng)的組成結(jié)構(gòu)。菜單欄菜單欄菜單標(biāo)題菜單項分隔條分隔條熱鍵菜單菜單圖7-9菜單系統(tǒng)的組成結(jié)構(gòu)7.2.1菜單設(shè)計器的使用在用VisualBasic設(shè)計下拉菜單時,可把每個菜單項(主菜單或子菜單項)看作一個圖形對象,即控件,它具有與某些控件相同的屬性。對于面向?qū)ο蟮目梢暬绦蛟O(shè)計的VisualBasic,可以使用菜單設(shè)計器來創(chuàng)建各菜單項,所有的設(shè)計都在菜單設(shè)計器窗口內(nèi)完成。利用這個窗口可以創(chuàng)建最多可達6層的下拉式菜單??梢酝ㄟ^以下4種方法進入菜單編輯器:(1)執(zhí)行“工具”菜單中的“菜單編輯器”命令;(2)使用熱鍵Ctrl+E;(3)單擊工具欄中的“菜單編輯器”按扭;(4)在要建立菜單的窗體上單擊鼠標(biāo)右鍵,將彈出一個菜單,然后單擊“菜單編輯器”命令。如圖7-10用彈出菜單打開菜單編輯器窗口。菜單編輯器

菜單編輯器

菜單編輯器

菜單編輯器

圖7-10用彈出菜單打開菜單編輯器窗口菜單編輯器窗口如圖7-11,菜單編輯器窗口分為三個部分:數(shù)據(jù)區(qū)、編輯區(qū)和菜單項顯示區(qū)。編輯區(qū)編輯區(qū)圖7-11菜單設(shè)計器窗口數(shù)據(jù)區(qū)是用來輸入或修改菜單項,設(shè)置屬性。(1)

標(biāo)題:用來輸入所要建立的菜單的名字及菜單中每個菜單項的標(biāo)題(相當(dāng)于控件的Caption屬性)。如果在該欄中輸入一個減號(-),則可以在菜單中加入一條分隔線。(2)

名稱:用來輸入菜單名及各種菜單項的控件名(相當(dāng)于控件的Name屬性),它不在菜單中出現(xiàn)。菜單名和菜單項都是控件,都為其取名,這些名稱只在程序設(shè)計的時候使用。(3)

索引:用來為用戶建立的控件數(shù)組設(shè)立下標(biāo)。(4)

快捷鍵:使用一個列表框,用來設(shè)置菜單項的快捷鍵(熱鍵)。單擊右端的箭頭,下拉顯示可提供使用的熱鍵,可選擇輸入與菜單項等價的熱鍵。(5)

幫助上下文:可在該文本框中鍵入數(shù)值,這個值用來在幫助文件(用HelpFile屬性設(shè)置)中找到相應(yīng)的幫助主題。(6)

協(xié)調(diào)位置列表框用來確定菜單或菜單項是否出現(xiàn)或在什么位置出現(xiàn)。該列表有4個選項:

0-None菜單項不顯示。

1-Left菜單項靠左顯示。

2-Middle菜單項居中顯示。

3-Right菜單項靠右顯示。(7)

復(fù)選:選擇該選項時,可以在相應(yīng)的菜單項旁邊加上指定的記號(例如“√”)。它不改變菜單項的作用,也不影響事件過程對任何對象的執(zhí)行結(jié)果,只是設(shè)置或重新設(shè)置菜單項旁的符號。利用這個屬性,可以指明某個菜單項當(dāng)前是否處于活動狀態(tài)。(8)

有效:用來設(shè)置菜單項的操作狀態(tài)。在默認(rèn)情況下該屬性被設(shè)置為True,表示相應(yīng)的菜單項可以對用戶事件做出相應(yīng)。如果設(shè)置為False時,該菜單項會“變灰”,不可操作。(9)

可見:確定菜單項是否可見。當(dāng)一個菜單項的“可見”屬性設(shè)置為False時,該菜單項將暫時從菜單中去掉;如果把它的“可見”屬性改為True,則該菜單項將從新出現(xiàn)在菜單中。(10)顯示窗口列表:當(dāng)該選項被設(shè)置為“On”時,將顯示當(dāng)前打開的一系列窗口。編輯區(qū)共有7個按扭,用來對輸入的菜單項進行簡單的編輯。菜單操作按扭中的上下箭頭按扭可調(diào)整菜單項在菜單列表框中的排列位置,左右箭頭按扭可調(diào)整菜單項的層次。在菜單列表框中,下級菜單項標(biāo)題前比上級菜單項多“……”標(biāo)志。編輯區(qū)還有“插入”和“刪除”按扭,菜單的插入和刪除都可以在編輯區(qū)完成。【例7.2】設(shè)計一個如圖7-12所示的簡易文本編輯排版系統(tǒng),在菜單欄中有“文件”、“編輯”和“顏色”三個菜單,其中“文件”菜單中包含“新建”、“打開”、“保存”和“退出”4個菜單項?!熬庉嫛辈藛沃邪皬?fù)制”、“剪切”、“粘貼”和“插入”,其中“插入”菜單又有“符號”、“圖片”和“文本框”3個菜單項,“文本框”又包含“橫排”和“豎排”2個級聯(lián)選項?!邦伾辈藛沃邪ā凹t色”、“藍色”和“綠色”3個子菜單。建立菜單大致可分成以下3個步驟:(1)建立控件本例中只需在窗體上放置一個文本框、一個通用對話框、一個按扭、兩個框架和四個單選按扭,并設(shè)置文本框的多行屬性(Multiline)和滾動條(ScroolBars)。如圖7-12初始界面。圖7-12初始界面(2)設(shè)計菜單打開菜單編輯器,按表7-4所示的文本編輯器菜單結(jié)構(gòu)輸入標(biāo)題、名稱和快捷鍵等。輸入如圖7-13所示的菜單結(jié)構(gòu)。表7-4文本編輯器菜單結(jié)構(gòu)標(biāo)題名稱快捷鍵標(biāo)題名稱快捷鍵文件FileMenu

…粘貼EditPasteCtrl+P…新建FileNewCtrl+N…插入Insert

…打開FileOpenCtrl+O……符號Sign

…保存FileSaveCtrl+S……圖形Pict

…另存為FileSaveAs

……文本框TextB

…退出FileExit

顏色Color

編輯EditMenu

…紅色RedColor

…復(fù)制EditCopyCtrl+C…藍色BlueColor

…剪切EditCutCtrl+X…綠色GreenColor

圖7-13菜單編輯器(3)為事件過程編寫代碼在菜單建立好了以后,還需要編寫相應(yīng)的事件過程。部分事件過程如下:PrivateSubfileopen_click()'打開對話框OnErrorGoTonofile'設(shè)置錯誤陷阱CommonDialog1.Filter="文本文件|*.txt"'設(shè)置通用對話框的屬性CommonDialog1.CancelError=TrueCommonDialog1.ShowOpen'設(shè)置文件“打開”對話框Text1.Text=""OpenCommonDialog1.FileNameForInputAs#1DoWhileNotEOF(1)LineInput#1,inputdataText1.Text=Text1.Text&inputdata&vbCrLfLoopClose#1ExitSubnofile:IfErr.Number=32755ThenExitSubEndSub

PrivateSubfileexit_click()'退出對話框EndEndSubPrivateSubcolor_click()'顏色對話框IfText1.Text=""ThenRed.Enabled=FalseBlue.Enabled=FalseGreen.Enabled=FalseElseRed.Enabled=TrueBlue.Enabled=TrueGreen.Enabled=TrueEndIfEndSub

PrivateSubred_click()Text1.ForeColor=vbRedEndSubPrivateSubblue_click()Text1.ForeColor=vbBlueEndSubPrivateSubgreen_click()Text1.ForeColor=vbGreenEndSub

PrivateSubfilesave_click()CommonDialog1.CancelError=TrueCommonDialog1.DefaultExt="txt"CommonDialog1.FileName="1bw.txt"CommonDialog1.Filter="textfiles(*.txt)|*.txt|allfiles(*.*)|*.*"CommonDialog1.FilterIndex=1CommonDialog1.DialogTitle="savefileas(*.txt)"CommonDialog1.Flags=vbofnoverwritepromptOrvbofnpathmustexistCommonDialog1.Action=2EndSub

7.2.2彈出式菜單前面較為詳細(xì)地介紹了下拉菜單的功能和建立方法。在實際應(yīng)用中,除下拉式菜單外,Windows還廣泛使用彈出式菜單,幾乎所有對象上單擊鼠標(biāo)右鍵都可以顯示一個彈出式菜單。彈出式菜單是一種小型的菜單,它可以在窗體的某個地方顯示出來,對程序事件做出響應(yīng)。通常用于對窗體中某個特定區(qū)域有關(guān)的操作或選項進行控制,與下拉式菜單不同,彈出式菜單不需要在窗口頂部下拉打開,而是通過單擊鼠標(biāo)右鍵按扭在窗口(窗體)的任意位置打開,因而使用方便,具有較大的靈活性。建立彈出式菜單的方法:首先用菜單編輯器建立菜單,然后用PopupMenu方法彈出顯示菜單。第一步的操作與前面介紹的基本相同,唯一的區(qū)別就是,必須把菜單名(即主菜單項)的“可見”屬性設(shè)置為False(子菜單項不要設(shè)置為False)。PopupMenu方法用來顯示彈出式菜單,其格式為:對象.PopupMenu菜單名,F(xiàn)lags,x,y,BoldCommand其中“對象”是窗體名,“菜單名”是在菜單編輯器中定義的主菜單項名,x,y是彈出式菜單在窗體上的顯示位置(與Flags參數(shù)配合使用,見后),Boldcommand用來在彈出式菜單中顯示一個菜單控制。Flags參數(shù)是一個數(shù)值或符號常量,用來指定彈出式菜單的位置行為。其取值分為兩組,一組用于指定菜單位置,另一組用于定義特殊的菜單行為,見下表:表7-5指定菜單位置和7-6定義菜單行為。表7-5指定表菜單位置的Flags屬性定位常量值作用vbPopuMenuLeftAlign0X坐標(biāo)指定菜單左邊位置vbPopuMenuCenterAlign4X坐標(biāo)指定菜單中間位置vbPopuMenuRightAlign8X坐標(biāo)指定菜單右邊位置

表7-6定義菜單行為的Flags屬性行為常量值作用vbPopupMenuLeftButton0通過單擊鼠標(biāo)左鍵選擇菜單命令vbPopupMenuRightButton8通過單擊鼠標(biāo)右鍵選擇菜單命令

注意:(1)PopupMenu方法有6個參數(shù),除“菜單名”外,其余參數(shù)均是可選的。當(dāng)省略“對象”時,彈出式菜單只能在當(dāng)前窗體中顯示。如果需要彈出式菜單在其他窗體中顯示,則必須加上窗體名。(2)Flags的兩組參數(shù)可以單獨使用,也可以聯(lián)合使用。當(dāng)聯(lián)合使用時,每組中取一個值,兩個值相加;如果使用符號常量,則兩個值用Or連接。(3)X和y分別用來指定彈出式菜單顯示位置的橫坐標(biāo)和縱坐標(biāo),如果省略,則彈出式菜單在鼠標(biāo)光標(biāo)的當(dāng)前位置顯示。(4)為了顯示彈出式菜單,通常把PopupMenu方法放在MouseDown事件中,該事件響應(yīng)所有的鼠標(biāo)單擊來實現(xiàn)。對于兩個鍵的鼠標(biāo)來說,左鍵的Button參數(shù)值為1,右鍵的Button參數(shù)值為2。因此,可以用下面的語句強制通過單擊鼠標(biāo)右鍵來響應(yīng)MouseDown事件,顯示彈出式菜單。IfButton=2ThenPopupMenu菜單名

【例7.2】建立例7.1中的“文件”菜單的彈出式菜單。彈出式菜單的創(chuàng)建方法:(1)

和編輯菜單的方法相同,建立“文件”菜單。(2)

設(shè)置菜單屬性:注意,主菜單項File的“可見”屬性應(yīng)設(shè)置為False,其余菜單項的“可見”屬性設(shè)置為True。(3)

編寫窗體的MouseDown事件過程。PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)IfButton=2ThenPopupMenuFileMenuEndIfEndSub程序執(zhí)行效果如圖7-14彈出式菜單:浮動菜單的菜單代碼見【例7.1】圖7-14彈出式菜單7.3

工具欄和狀態(tài)欄工具欄為用戶提供了對于應(yīng)用程序中最常用的菜單命令的快速訪問,進一步增強應(yīng)用程序的菜單界面,工具欄的創(chuàng)建:一是用圖形框和命令按扭制作;另一種方法通過組合使用ToolBar、ImageList控件,此方法使得工具欄制作一樣簡單易學(xué)。狀態(tài)欄StatusBar控件可顯示各種狀態(tài)信息。使用這些控件跟使用通用控件一樣,使用前必須打開“部件”對話框,選擇“MicrosoftWindowsCommonControls6.0”,將控件添加到工具箱。如圖7-13工具箱。一、工具欄創(chuàng)建工具欄的步驟:(1)

在ImageList控件中添加所需要的圖象。(2)

在ToolBar控件中創(chuàng)建Button對象。(3)

在ButtonClick事件中用SelectCase語句對各按扭進行相應(yīng)的編程。1.

在ImageList控件中添加圖象ImageList控件不可以單獨使用,它專門為其他控件提供圖像庫,是一個圖像容器控件。我們使用的工具欄按扭的圖像就是通過ToolBar控件從ImageList的圖像庫中獲得的。先在窗體上添加ImageList1和ToolBar1控件。選擇ImageList1,單擊右鍵,從彈出菜單中選擇“屬性”,然后在“屬性頁”對話框中選擇“圖像”標(biāo)簽,如圖7-14所示。圖7-14ImageList屬性頁屬性設(shè)置:索引(Index):表示每個圖像的編號,在ToolBar的按扭中引用。關(guān)鍵子(Key):表示每個圖像的標(biāo)識名,在ToolBar的按扭中引用。圖像數(shù):表示已經(jīng)插入的圖像數(shù)目。插入圖片:插入新圖像,圖像文件的擴展名為.ico,.bmp,.gif,.jpg等。2.

為工具欄連接圖像打開ToolBar控件“屬性頁”對話框,選擇“通用”標(biāo)簽,如圖7-15。圖像列表圖像列表圖7-15ToolBar“通用”選項卡其中:圖像列表:下拉式列表框表示與ImageList控件的連接,此例選擇ImageList1控件名。當(dāng)ImageList控件與ToolBar控件相關(guān)后,就不能對其進行編輯。若需要對ImageList控件進行編輯時,須先在ToolBar控件的“圖像列表”下拉列表框設(shè)置為“無”,切斷與ImageList的關(guān)系,然后對ImageList進行編輯。

3.

為工具欄增加按扭選擇圖7-15ToolBar屬性頁的“按扭”標(biāo)簽,如圖7-16所示,單擊“插入按扭”可以在工具欄上插入Button對象。圖7-16ToolBar“按扭”選項卡

在此選項卡中需要設(shè)置的屬性:索引(Index):文本框表示每個按扭的數(shù)字編號,在ButtonClick事件中的引用。圖像(Image):文本框選定ImageList對象中的圖像,可以用圖像的Key或Index值。從而和ImageList中的圖像連接。如圖7-17。關(guān)鍵字(Key):表示每個圖像的標(biāo)識名,在ToolBar的按扭中引用。樣式(Style):下拉列表框指定按扭樣式,共6種。其屬性值如表7-6表7-6按扭樣式值常數(shù)按扭說明0thrDefault普通按扭按扭按下后恢復(fù)原態(tài)1thrCheck開關(guān)按扭按扭按下后將保持按下狀態(tài)2thrButtonGroup編組按扭一組按扭同時只能一個有效3thrSepatator分隔按扭把左右的按扭分隔其他按扭4thrPlaceholder占位按扭以便安放其他控件,可設(shè)置按扭寬度5thrdropdown菜單按扭具有下拉式菜單

按扭圖標(biāo)圖7-17按扭圖標(biāo)按扭圖標(biāo)4.

添加事件代碼工具欄上的按扭是控件數(shù)組,單擊工具欄上的按扭會發(fā)生ButtonClick事件或ButtonMenuClick事件,我們可以利用數(shù)組的索引(Index)或關(guān)鍵字(Key)來識別被單擊的按扭,再使用SelectCase語句完成代碼編寫。(1)用索引Index確定按扭PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.But

溫馨提示

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

最新文檔

評論

0/150

提交評論