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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【例7.2】在例7.1的窗體上增加命令按扭Command3,用于打開顏色對(duì)話框,通過“顏色”對(duì)話框設(shè)置窗體(Form1)的背景顏色。代碼如下:PrivateSubCommand3_Click()CommonDialog1.Flags=vbCCRGBinitCommonDialog1.Color=BackColorCommonDialog1.Action=3Form1.BackColor=CommonDialog1.ColorEndSub為了設(shè)置或讀取Color屬性,必須將Flags屬性設(shè)置為1(vbCCRGBinit)。7.1.3“字體”對(duì)話框在VisualBasic中,字體通過字體(Font)對(duì)話框?qū)傩栽O(shè)置。利用通用對(duì)話框控件,可以建立一個(gè)字體對(duì)話框,并可以通過該對(duì)話框設(shè)置應(yīng)用程序所需要的字體。字體對(duì)話框的主要屬性:(1)CancleError,DialogTitle,HelpCommand,HelpContext,HelpFile和HelpKey見前面介紹。(2)Flags屬性:其屬性值見表7-3。表7-3字體對(duì)話框的Flags屬性取值符號(hào)常數(shù)屬性值作用cdlCFScreenFonts1只顯示屏幕字體cdlCFPrinterFonts2只列出打印機(jī)字體cdlCFBoth3列出打印機(jī)和屏幕字體cdlCFEffects256允許中劃線、下劃線和顏色(3)Max和Min屬性:字體大小用點(diǎn)來度量。在默認(rèn)情況下,字體大小的范圍為1~2048個(gè)點(diǎn),用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這些屬性可以在字體對(duì)話框中選擇,也可以通過程序代碼賦值?!纠?.3】用字體對(duì)話框設(shè)置文本框中顯示的字體。在窗體上建立通用對(duì)話框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è)置通用對(duì)話框的Flags的屬性,從而可以得到如圖7-6的對(duì)話框。圖7-6字體對(duì)話框程序運(yùn)行結(jié)果如圖7-7所示。圖7-7調(diào)試結(jié)果7.1.4“打印”對(duì)話框“打印”對(duì)話框是當(dāng)Action為5時(shí)的通用對(duì)話框,可以通過“打印”對(duì)話框的名稱框選擇打印機(jī),通過“打印”對(duì)話框的“屬性”按扭設(shè)置打印機(jī)的屬性?!按蛴 睂?duì)話框并不能處理打印工作,僅僅是一個(gè)供用戶選擇打印參數(shù)的界面,所選參數(shù)存于各屬性中,再通過編寫程序來實(shí)現(xiàn)打印機(jī)操作。打印對(duì)話框的主要屬性如下:(1)Copies屬性:指定要打印的文檔的拷貝數(shù)。(2)FromPage和ToPage屬性:指定要打印的文檔的頁范圍。(3)hDC屬性:分配給打印機(jī)的句柄,用來識(shí)別對(duì)象的設(shè)備環(huán)境,用于API調(diào)用。(4)Max和Min屬性:用來限制FromPage和ToPage的范圍,其中Min指定所允許的起始頁碼,Max指定所允許的最后頁碼?!纠?.4】在窗體上創(chuàng)建一個(gè)通用對(duì)話框、一個(gè)文本框和一個(gè)命令按扭,建立打印對(duì)話框,打印文本框中的信息。PrivateSubCommand1_Click()CommonDialog1.ShowPrinterForI=1ToCommonDialog1.CopiesPrinter.PrintText1.TextNextiPrinter.EndDocEndSub程序執(zhí)行如圖7-8的打印對(duì)話框。圖7-8的打印對(duì)話框

7.1.5“幫助”對(duì)話框“幫助”對(duì)話框可以用于制作應(yīng)用程序的聯(lián)機(jī)幫助?!皫椭睂?duì)話框本身不能建立應(yīng)用程序的幫助文件,只能將已經(jīng)創(chuàng)建好的幫助文件從磁盤中提取出來,并與界面連接起來,從而能夠顯示并搜索幫助信息的目的。創(chuàng)建幫助文件需要用“幫助”編輯器生成幫助文件。幫助對(duì)話框涉及到的重要屬性有:(1)HelpCommand:返回或設(shè)置所需要的聯(lián)機(jī)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è)計(jì)一個(gè)調(diào)用VB.hlp的程序。PrivateSubCommand1_Click()CommonDialog1.HelpCommand=cdlHelpContentsCommonDialog1.HelpFile="C:\Windows\help\notepad"CommonDialog1.HelpKey="dlakglk"CommonDialog1.ShowHelpEndSub

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

菜單編輯器

菜單編輯器

菜單編輯器

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

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

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

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

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

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

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

0-None菜單項(xiàng)不顯示。

1-Left菜單項(xiàng)靠左顯示。

2-Middle菜單項(xiàng)居中顯示。

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

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

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

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

…保存FileSaveCtrl+S……圖形Pict

…另存為FileSaveAs

……文本框TextB

…退出FileExit

顏色Color

編輯EditMenu

…紅色RedColor

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

…剪切EditCutCtrl+X…綠色GreenColor

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

PrivateSubfileexit_click()'退出對(duì)話框EndEndSubPrivateSubcolor_click()'顏色對(duì)話框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ì)地介紹了下拉菜單的功能和建立方法。在實(shí)際應(yīng)用中,除下拉式菜單外,Windows還廣泛使用彈出式菜單,幾乎所有對(duì)象上單擊鼠標(biāo)右鍵都可以顯示一個(gè)彈出式菜單。彈出式菜單是一種小型的菜單,它可以在窗體的某個(gè)地方顯示出來,對(duì)程序事件做出響應(yīng)。通常用于對(duì)窗體中某個(gè)特定區(qū)域有關(guān)的操作或選項(xiàng)進(jìn)行控制,與下拉式菜單不同,彈出式菜單不需要在窗口頂部下拉打開,而是通過單擊鼠標(biāo)右鍵按扭在窗口(窗體)的任意位置打開,因而使用方便,具有較大的靈活性。建立彈出式菜單的方法:首先用菜單編輯器建立菜單,然后用PopupMenu方法彈出顯示菜單。第一步的操作與前面介紹的基本相同,唯一的區(qū)別就是,必須把菜單名(即主菜單項(xiàng))的“可見”屬性設(shè)置為False(子菜單項(xiàng)不要設(shè)置為False)。PopupMenu方法用來顯示彈出式菜單,其格式為:對(duì)象.PopupMenu菜單名,F(xiàn)lags,x,y,BoldCommand其中“對(duì)象”是窗體名,“菜單名”是在菜單編輯器中定義的主菜單項(xiàng)名,x,y是彈出式菜單在窗體上的顯示位置(與Flags參數(shù)配合使用,見后),Boldcommand用來在彈出式菜單中顯示一個(gè)菜單控制。Flags參數(shù)是一個(gè)數(shù)值或符號(hào)常量,用來指定彈出式菜單的位置行為。其取值分為兩組,一組用于指定菜單位置,另一組用于定義特殊的菜單行為,見下表:表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個(gè)參數(shù),除“菜單名”外,其余參數(shù)均是可選的。當(dāng)省略“對(duì)象”時(shí),彈出式菜單只能在當(dāng)前窗體中顯示。如果需要彈出式菜單在其他窗體中顯示,則必須加上窗體名。(2)Flags的兩組參數(shù)可以單獨(dú)使用,也可以聯(lián)合使用。當(dāng)聯(lián)合使用時(shí),每組中取一個(gè)值,兩個(gè)值相加;如果使用符號(hào)常量,則兩個(gè)值用Or連接。(3)X和y分別用來指定彈出式菜單顯示位置的橫坐標(biāo)和縱坐標(biāo),如果省略,則彈出式菜單在鼠標(biāo)光標(biāo)的當(dāng)前位置顯示。(4)為了顯示彈出式菜單,通常把PopupMenu方法放在MouseDown事件中,該事件響應(yīng)所有的鼠標(biāo)單擊來實(shí)現(xiàn)。對(duì)于兩個(gè)鍵的鼠標(biāo)來說,左鍵的Button參數(shù)值為1,右鍵的Button參數(shù)值為2。因此,可以用下面的語句強(qiáng)制通過單擊鼠標(biāo)右鍵來響應(yīng)MouseDown事件,顯示彈出式菜單。IfButton=2ThenPopupMenu菜單名

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

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

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

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

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

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

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

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

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

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

3.

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

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

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

添加事件代碼工具欄上的按扭是控件數(shù)組,單擊工具欄上的按扭會(huì)發(fā)生ButtonClick事件或ButtonMenuClick事件,我們可以利用數(shù)組的索引(Index)或關(guān)鍵字(Key)來識(shí)別被單擊的按扭,再使用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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論