版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
優(yōu)質(zhì)文檔精選VB教程用戶界面設(shè)計(jì)目前一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.1菜單設(shè)計(jì)
Windows環(huán)境下的應(yīng)用程序一般為用戶提供三種菜單:窗體控制菜單、下拉菜單與快捷菜單。目前二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)一.啟動(dòng)菜單編輯器:有三種方法:
1單擊工具欄菜單圖標(biāo)
2工具/菜單編輯器
(CTRL+E)3窗體上快捷菜單/菜單編輯器菜單編輯器操作界面如右所示。10.1.1菜單編輯器目前三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)菜單編輯器介紹:1.標(biāo)題(Caption):2.名稱(Name):3.快捷鍵(Shortcut):4.下一個(gè)(Next):5.←和→按鈕6.插入(Insert)按鈕:7.刪除(Delete)按鈕:8↓和↑按鈕: 10.復(fù)選(Checked)檢查框:10.有效(Enabled)檢查框:11.顯示窗口列表(WindowList)檢查框:
目前四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
菜單的主要屬性
1.標(biāo)題(Caption):在窗口上顯示,例如:輸入&File,顯示為:File,熱鍵:Alt+F
2.名稱(Name): 菜單項(xiàng)的名稱,分界符也應(yīng)有名稱。
3.快捷鍵(Shortcut):下拉列表框
4下一個(gè)(Next): 設(shè)置下一個(gè)菜單項(xiàng)。
5.←和→按鈕:“→”下一級(jí)菜單項(xiàng);“←”上一級(jí)菜單項(xiàng)。
6.插入(Insert)按鈕:插入菜單項(xiàng)
7.刪除(Delete)按鈕:刪除菜單項(xiàng)
8.↓和↑按鈕: 改變菜單項(xiàng)位置。
10.復(fù)選(Checked)檢查框:菜單項(xiàng)為選定項(xiàng)。
10.有效(Enabled)檢查框:True:菜單項(xiàng)可選;False:不可選。
11.顯示窗口列表(WindowList)檢查框:目前五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)1.設(shè)計(jì)下拉菜單2.設(shè)計(jì)子菜單或改變子菜單級(jí)別
3.為菜單項(xiàng)分組菜單名用減號(hào)“-”4.為菜單項(xiàng)指定訪問(wèn)鍵和快捷鍵與命令按鈕設(shè)置訪問(wèn)鍵相同。5.為菜單項(xiàng)加上復(fù)選標(biāo)記6.禁止使用菜單項(xiàng)在程序代碼中可以通過(guò)程序代碼:菜單名.Enabled=False7.菜單項(xiàng)的增減
菜單設(shè)計(jì)的常用的幾項(xiàng)操作:目前六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.1.2下拉式菜單
10.1菜單設(shè)計(jì)
在下拉式菜單中,一般只需要對(duì)下拉菜單的最低級(jí)菜單項(xiàng)編寫(xiě)單擊事件代碼,如果對(duì)一個(gè)有下級(jí)菜單的菜單項(xiàng)編寫(xiě)了單擊事件,則在執(zhí)行下一級(jí)菜單時(shí),該菜單程序?qū)⑾葓?zhí)行。
在下拉式菜單中,一般有一個(gè)主菜單,稱為菜單欄。每個(gè)菜單欄包括一個(gè)或多個(gè)選擇項(xiàng),稱為菜單標(biāo)題。
菜單控件(對(duì)象)只有一個(gè)事件——單擊事件(Click())一.設(shè)計(jì)下拉式菜單的步驟:(1)新建一個(gè)窗體,并設(shè)計(jì)用戶界面。(2)利用菜單編輯器設(shè)計(jì)各菜單項(xiàng)。(3)編寫(xiě)每個(gè)菜單項(xiàng)的事件過(guò)程。(4)運(yùn)行調(diào)試各菜單命令。目前七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)二、下拉式菜單設(shè)計(jì)舉例【例10.1】設(shè)計(jì)菜單程序,通過(guò)菜單控制標(biāo)簽中文字的字體,字型等,程序運(yùn)行界面如圖10.3所示。當(dāng)用戶選擇某一菜單項(xiàng)時(shí)執(zhí)行相應(yīng)的命令功能。圖10.3程序運(yùn)行界面設(shè)計(jì)步驟如下:1.界面設(shè)計(jì)在窗體上添加一個(gè)Frame1和Label1,用于顯示文字信息。啟動(dòng)菜單編輯器,所要建立的菜單中各菜單項(xiàng)的屬性設(shè)置如表10.1所示,菜單編輯器中各項(xiàng)設(shè)置如圖10.4所示,對(duì)每一個(gè)菜單項(xiàng)輸入標(biāo)題、名稱和選擇相應(yīng)的快捷鍵。目前八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)標(biāo)題(Caption)名稱(Name)索引值說(shuō)
明字體字體主菜單項(xiàng)1….宋體
songti子菜單11快捷鍵Ctrl+S….楷體kaiti子菜單12快捷鍵Ctrl+K….黑體heiti子菜單13快捷鍵Ctrl+H字型字型主菜單項(xiàng)2….粗體(&B)
fontstyle0子菜單21熱鍵B….斜體(&I)fontstyle1子菜單22熱鍵I….下劃線(&U)fontstyle2子菜單23熱鍵U表10.1菜單項(xiàng)屬性設(shè)置(2)編寫(xiě)菜單項(xiàng)代碼PrivateSubForm_Load()Label1.FontSize=16Label1.Caption="長(zhǎng)亭外古道邊"+Chr(13)+Chr(10)+"芳草碧連天"+Chr(13)+Chr(10)+"問(wèn)君此去幾時(shí)來(lái)"+Chr(13)+Chr(10)+"來(lái)時(shí)莫徘徊"EndSubPrivateSubsongti_Click()Label1.FontName="宋體"EndSubPrivateSubheiti_Click()Label1.FontName="黑體"EndSubPrivateSubkaiti_Click()Label1.FontName="楷體_GB2312"EndSub
目前九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)PrivateSubfontstyle_Click(IndexAsInteger)fontstyle(Index).Checked=Notfontstyle(Index).CheckedSelectCaseIndexCase0Label1.FontBold=fontstyle(Index).CheckedCase1Label1.FontItalic=fontstyle(Index).CheckedCase2Label1.FontUnderline=fontstyle(Index).CheckedEndSelectEndSub字型下拉菜單代碼如下:目前十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
彈出式菜單是獨(dú)立于菜單欄顯示在窗體或指定控件上的浮動(dòng)菜單,菜單的顯示位置與鼠標(biāo)當(dāng)前位置有關(guān)。實(shí)現(xiàn)步驟如下:
1.在菜單編輯器中建立該菜單。
2.設(shè)置其頂層菜單項(xiàng)(主菜單項(xiàng))的Visible屬性為False(不可見(jiàn))。
3.在窗體或控件的MouseUp或MouseDown事件中調(diào)用PopupMenu方法顯示該菜單。PopupMenu的使用方法為:
PopupMenu<菜單名>[,flags[,x[,y[,Boldcommand]]]]10.1.3彈出式菜單
其中:⑴關(guān)鍵字“PopupMenu”可以前置窗體名稱,但不可前置其他控件名稱。⑵<菜單名>是指通過(guò)菜單編輯器設(shè)計(jì)的、至少有一個(gè)子菜單項(xiàng)的菜單名稱(Name)。⑶Flags參數(shù)為常數(shù),用來(lái)定義顯示位置與行為,其取值見(jiàn)表10.2目前十一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)位置常數(shù)值描述vbPopupMenuLeftAlign0缺省值。彈出式菜單的左邊定位于
x。vbPopupMenuCenterAlign4彈出式菜單以
x為居中心。vbPopupMenuRightAlign8彈出式菜單的右邊定位于
x。行為常數(shù)值描述vbPopupMenuLeftButton0缺省值。
僅當(dāng)使用鼠標(biāo)右鍵單擊時(shí),
彈出式菜單中的項(xiàng)目才響應(yīng)鼠標(biāo)單擊。vbPopupMenuRightButton2彈出式菜單中的項(xiàng)目可接受左、右鍵單擊。10.1.3彈出式菜單設(shè)計(jì)表10.2flags參數(shù)值表Boldcommand參數(shù)設(shè)置菜單項(xiàng)可以粗體顯示。一般的彈出式菜單是在右擊時(shí)彈出,所以PopupMenu方法一般是放在對(duì)象的MouseDown事件過(guò)程中,根據(jù)按下的是鼠標(biāo)左鍵還是右鍵來(lái)決定是否彈出菜單。目前十二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)例10.2】
為【例10.1】添加一個(gè)標(biāo)簽的彈出式菜單,該菜單包含有“10”、“12”和“14”3個(gè)菜單項(xiàng),如圖10.5所示。單擊相應(yīng)的菜單項(xiàng)后可以改變標(biāo)簽中文字的字體大小。彈出式式菜單設(shè)計(jì)舉例圖10.5彈出式菜單PrivateSubLabel1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2Then'按下鼠標(biāo)右鍵Form1.PopupMenufsize,4Or2EndIfEndsubPrivateSubsize_Click(IndexAsInteger)SelectCaseIndexCase0Label1.fontsize=10Case1Label1.fontsize=12Case2Label1.fontsize=14EndSelectEndsub目前十三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)用“菜單編輯器”對(duì)話框創(chuàng)建好的菜單,在程序運(yùn)行過(guò)程中并非就一成不變。用戶可以根據(jù)實(shí)際運(yùn)行情況動(dòng)態(tài)地調(diào)整和控制菜單的使用,給菜單增加一些靈活性。如當(dāng)某菜單項(xiàng)執(zhí)行的操作不適合當(dāng)前環(huán)境時(shí),可以暫時(shí)使其失效或?qū)⑵潆[藏起來(lái)。當(dāng)需要時(shí)也可以添加或刪除某菜單項(xiàng)。隱藏或顯示菜單項(xiàng)并不能真正地改變菜單的數(shù)量,要使菜單項(xiàng)真正地、動(dòng)態(tài)地增減(從內(nèi)存中),則必須使用菜單控件數(shù)組實(shí)現(xiàn)。運(yùn)行時(shí)通過(guò)Load語(yǔ)句增加新的菜單控件,使用UnLoad語(yǔ)句將其刪除。10.1.4動(dòng)態(tài)菜單Load
控件數(shù)組名(index)Unload
控件數(shù)組名(index)目前十四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.1.4動(dòng)態(tài)菜單【例10.3】設(shè)計(jì)如下程序,當(dāng)文本框中沒(méi)有任何文字時(shí),“字體大小”菜單中的各項(xiàng)均變?yōu)榛疑@示,表示當(dāng)前不可用;當(dāng)用戶在文本框中輸入了文字后選擇某菜單項(xiàng)后,可將文字大小設(shè)為對(duì)應(yīng)值并在當(dāng)前菜單項(xiàng)的前面加一個(gè)“√”,如圖10.6(a)、圖10.6(b)所示。如果用戶選擇了“14”菜單項(xiàng),則“10”菜單項(xiàng)將隱藏,并且添加菜單項(xiàng)“16”,其功能與其他菜單項(xiàng)相同,當(dāng)用戶重新選擇了“12”菜單項(xiàng)時(shí),“16”菜單項(xiàng)將被刪除,并恢復(fù)菜單項(xiàng)“10”的可見(jiàn)性,即文字字號(hào)最大值為16,最小為10,菜單中只能同時(shí)存在三個(gè)選項(xiàng),如圖10.6(c)、圖10.6(d)所示。圖10.6動(dòng)態(tài)修改菜單示例(b)(c)(d)(a)目前十五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.2通用對(duì)話框工程/部件
選定控件標(biāo)簽選定MicrosoftCommDialogControl6.0
CommonDialog控件不是標(biāo)準(zhǔn)控件,是一種ActiveX控件,位于MicrosoftCommonDialogControl6.0部件中。確定通用對(duì)話框圖標(biāo)目前十六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.2.1通用對(duì)話框的基本屬性和方法CommonDialog控件的基本屬性(1)Action屬性:該屬性決定打開(kāi)何種類型的標(biāo)準(zhǔn)對(duì)話框,其取值如表10.4所示。該屬性不能在屬性窗口中設(shè)置,只能在程序中賦值。表10.4打開(kāi)通用對(duì)話框的方法與Action屬性設(shè)置類型Action屬性方法無(wú)對(duì)話框0—“打開(kāi)”對(duì)話框1ShowOpen“另存為”對(duì)話框2ShowSave“顏色”對(duì)話框3ShowColor“字體”對(duì)話框4ShowFont“打印”對(duì)話框5ShowPrinter“幫助”對(duì)話框6ShowHelp目前十七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)(2)Name屬性:CommonDialog控件的名稱屬性。(3)CancelError屬性:多數(shù)對(duì)話框都有“取消”按鈕,用于向應(yīng)用程序表示用戶想取消當(dāng)前操作。CancelError屬性的作用是向應(yīng)用程序報(bào)告用戶取消當(dāng)前的操作,通過(guò)一個(gè)錯(cuò)誤報(bào)告給應(yīng)用程序。如果該屬性設(shè)置為T(mén)rue,在程序的運(yùn)行階段,用戶選擇“取消”操作時(shí),出現(xiàn)錯(cuò)誤提示。默認(rèn)是False,不出現(xiàn)錯(cuò)誤提示。對(duì)話框打開(kāi)后,為了防止用戶沒(méi)有輸入任何信息便使用取消操作,則可用此屬性設(shè)置出錯(cuò)警告。(4)Flags屬性:用于設(shè)置對(duì)話框外觀及工作方式。對(duì)于每種對(duì)話框都有許多不同的設(shè)置值。在通用對(duì)話框的使用過(guò)程中,每種對(duì)話框都有自己的特殊屬性。CommonDialog控件的屬性可以在屬性窗口中設(shè)置,也可在其“屬性頁(yè)”對(duì)話框中設(shè)置。在窗體中的CommonDialog控件上右擊,在彈出的快捷菜單中選擇“屬性”命令,打開(kāi)“屬性頁(yè)”對(duì)話框,該對(duì)話框中有五個(gè)選項(xiàng)卡,分別可對(duì)不同類型的標(biāo)準(zhǔn)對(duì)話框設(shè)置屬性。目前十八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)FilterIndexDefaultExtDialogTiltleFileNameInitDirFilter
在設(shè)計(jì)時(shí),可以通過(guò)屬性窗口設(shè)置通用對(duì)話框的屬性設(shè)置控件屬性,也可以使用通用對(duì)話框的屬性頁(yè)設(shè)置相關(guān)屬性。
2.CommonDialog控件的方法在程序中要使用CommonDialog控件的標(biāo)準(zhǔn)對(duì)話框,除了使用CommonDialog控件的Action屬性設(shè)置對(duì)話框的類型外,還可以使用CommonDialog控件的方法。這些方法如表10.4所示。例如:CommonDialog1.Action=1或者CommonDialog1.ShowOpen目前十九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.2.2“打開(kāi)”
對(duì)話框CancelError:返回或設(shè)置一個(gè)值,該值指示當(dāng)單擊“取消”按鈕時(shí)是否出錯(cuò)。DefaultExt:用于設(shè)置或返回對(duì)話框默認(rèn)的文件擴(kuò)展名。該屬性值是一個(gè)文件擴(kuò)展名字符串,如“*.txt”、“*.doc”等。當(dāng)保存一個(gè)沒(méi)有指定擴(kuò)展名的文件時(shí),系統(tǒng)自動(dòng)添加默認(rèn)擴(kuò)展名。DialogTitle:返回或設(shè)置對(duì)話框的標(biāo)題。Filename:返回或設(shè)置用戶所選擇的文件的完整路徑和文件名稱。FileTitle:返回用戶選擇文件的文件名稱,包括擴(kuò)展名,但不包括路徑。
使用通用對(duì)話框控件的ShowOpen方法,或?qū)ction屬性賦值為1,可以在運(yùn)行時(shí)顯示“打開(kāi)”對(duì)話框。需要設(shè)置以下屬性:目前二十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)6.Filter:設(shè)置或返回在對(duì)話框的文件類型列表框中所顯示文件類型。該屬性值可以是一組元素或用“|”符號(hào)分開(kāi)的分別表示不同類型文件的多組元素組成。例如,如果要在“文件類型”列表框中顯示下列三種文件類型以供用戶選擇。WORD文檔(*.DOC)擴(kuò)展名為DOC的Word文件文本文件(*.TXT)擴(kuò)展名為T(mén)XT的文本文件AllFiles(*.*)所有文件那么Filter屬性就應(yīng)該設(shè)為:"WORD文檔(*.doc)|*.doc|文本文件(*.txt)|*.txt|所有文件|*.*"7.FilterIndex:返回或設(shè)置“打開(kāi)”或“另存為”對(duì)話框中一個(gè)默認(rèn)的過(guò)濾器。8.InitDir:返回或設(shè)置“打開(kāi)”對(duì)話框中的初始目錄。9.MaxFileSize:返回或設(shè)置使用CommonDialog控件時(shí),被打開(kāi)的文件名的最大尺寸。10.2.2“打開(kāi)”
對(duì)話框上述屬性若在程序中設(shè)置,都必須放在使用Action屬性或ShowOPen和ShowSave方法調(diào)用的“打開(kāi)”或“另存為”對(duì)話框語(yǔ)句之前。否則起不到其功能目前二十一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
【例10.4】編寫(xiě)一個(gè)簡(jiǎn)單的文本文件編輯程序,如圖10.9所示,文件的內(nèi)容顯示在上面的文本框中。從左到右共6個(gè)命令按鈕依次按約定命名。下面列出了Command1事件過(guò)程的程序代碼,其他的事件過(guò)程在以后的各節(jié)中分別給出。10.2.2“打開(kāi)”
對(duì)話框圖10.9通用對(duì)話框示例目前二十二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)程序運(yùn)行時(shí),當(dāng)CommonDialog控件的Action屬性為2或者調(diào)用ShowSave方法時(shí),系統(tǒng)就會(huì)彈出“另存為”對(duì)話框,它為用戶在存儲(chǔ)文件時(shí)提供了一個(gè)標(biāo)準(zhǔn)的用戶界面。實(shí)際上“另存為”對(duì)話框和“打開(kāi)”對(duì)話框涉及的屬性基本一樣,獨(dú)有一個(gè)屬性DefaultExt,表示默認(rèn)擴(kuò)展名。10.2.3“另存為”
對(duì)話框【例10.5】為例10.4中的“另存為…”命令按鈕(Command2)編寫(xiě)事件過(guò)程,把文本框(Text1)中的內(nèi)容寫(xiě)入一個(gè)文本文件。目前二十三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)顏色對(duì)話框是當(dāng)Action值為3時(shí)或者調(diào)用ShowColor方法時(shí),系統(tǒng)就會(huì)彈出“顏色”對(duì)話框,為用戶提供了顏色選擇器,如右圖。
重要屬性
Color:用來(lái)返回或設(shè)置選定的顏色。10.2.4“顏色”對(duì)話框【例10.6】為例10.4中的“顏色…”命令按鈕(Command3)編寫(xiě)事件過(guò)程,用“顏色”對(duì)話框設(shè)置文本框的前景顏色?!邦伾卑粹o的單擊事件過(guò)程如下:PrivateSubCommand3_Click()CommonDialog1.Action=3Text1.ForeColor=CommonDialog1.ColorEndSub目前二十四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.2.5“字體”對(duì)話框字體對(duì)話框是Action為4時(shí)的通用對(duì)話框,如下圖所示,提供用戶選擇字體、字號(hào)及字體樣式等。字體對(duì)話框重要的屬性有:Color,FontName,FontSize,FontBoldFontItalic,FontStrikethru,FontUnderline,Max等.
FontNameFontBold、FontItalicFontSizeFontStrikethruFontUnderlineColorMin、Max目前二十五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)Flags屬性:設(shè)置所顯示的字體類型,數(shù)據(jù)類型為L(zhǎng)ong。
注意
在顯示“字體”對(duì)話框前,必須先將
Flags屬性設(shè)置為
cdlCFScreenFonts,cdlCFPrinterFonts,或cdlCFBoth。否則,會(huì)發(fā)生字體不存在的錯(cuò)誤?!白煮w”對(duì)話框的Flags屬性設(shè)置值系統(tǒng)常數(shù)值說(shuō)明cdlCFScreenFonts&H1顯示屏幕字體cdlCFPrinterFonts&H2顯示打印機(jī)字體cdlCFBoth&H3顯示打印機(jī)和屏幕字體cdlCFEffects&H100在“字體”對(duì)話框中顯示刪除線和下劃線以及顏色組合框10.2.5“字體”對(duì)話框目前二十六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.7】為例10.4中的“字體…”命令按鈕(Command4)編寫(xiě)事件過(guò)程,設(shè)置文本框的字體?!白煮w”按鈕的單擊事件過(guò)程如下:PrivateSubCommand4_Click()CommonDialog1.Flags=cdlCFScreenFontsOrcdlCFEffectsCommonDialog1.Max=100CommonDialog1.Min=1CommonDialog1.ShowFont'CommonDialog1.Action=4Text1.FontName=CommonDialog1.FontNameText1.FontSize=CommonDialog1.FontSizeText1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethruText1.FontUnderline=CommonDialog1.FontUnderlineText1.ForeColor=CommonDialog1.ColorEndSub目前二十七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)程序運(yùn)行時(shí),當(dāng)CommonDialog控件的Action屬性為5或者調(diào)用ShowPrinter方法時(shí),系統(tǒng)就會(huì)彈出“打印”對(duì)話框,它是一個(gè)設(shè)置選擇打印參數(shù)的界面,如圖10.12所示。10.2.6“打印”對(duì)話框圖10.12“打印”對(duì)話框重要屬性:Copies:返回或設(shè)置需要打印的份數(shù)。Max、Min:返回或設(shè)置打印范圍允許的最大和最小值。FromPage、ToPage:返回或設(shè)置起始頁(yè)號(hào)和終止頁(yè)號(hào)。當(dāng)cdlPDPageNums標(biāo)志被設(shè)置時(shí)才有效。目前二十八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.8】為例10.4中的“打印…”命令按鈕(Command5)編寫(xiě)事件過(guò)程,用“打印”對(duì)話框打印文本框(Text1)中的內(nèi)容?!按蛴 卑粹o的單擊事件過(guò)程如下:PrivateSubCommand5_Click()DimiAsIntegerCommonDialog1.ShowPrinter'CommonDialog1.Action=5Fori=1ToCommonDialog1.CopiesPrinter.PrintText1.TextNextiPrinter.EndDoc'結(jié)束打印EndSub目前二十九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.2.7“幫助”對(duì)話框程序運(yùn)行時(shí),當(dāng)CommonDialog控件的Action屬性為6或者調(diào)用ShowHelp方法時(shí),系統(tǒng)就會(huì)彈出“幫助”對(duì)話框,它可以為用戶制作應(yīng)用程序的聯(lián)機(jī)幫助。“幫助”對(duì)話框本身不能建立應(yīng)用程序的幫助文件,它只能將已建好的幫助文件從磁盤(pán)中提取出來(lái),并與界面建立連接,從而達(dá)到顯示并檢索幫助信息的目的。使用ShowHelp方法前,必須將CommonDialog控件的HelpFile和HelpCommand屬性設(shè)置為與其相應(yīng)的一個(gè)常數(shù)或值,否則,Winhlp32.exe就不能顯示幫助文件。對(duì)于“幫助”對(duì)話框,有以下幾個(gè)重要屬性:HelpCommand:返回或設(shè)置需要的聯(lián)機(jī)幫助的類型。具體設(shè)置請(qǐng)參閱VB幫助系統(tǒng)HelpFile:確定MicrosoftWindowsHelp文件的路徑和文件名,應(yīng)用程序使用這個(gè)文件顯示Help或聯(lián)機(jī)文檔。HelpKey:返回或設(shè)置標(biāo)識(shí)請(qǐng)求的幫助主題的關(guān)鍵字。HelpContext:該屬性與HelpCommand屬性一起使用(設(shè)置HelpCommand=cdlHelpContext),返回或設(shè)置請(qǐng)求的幫助主題的上下文ID以指定要顯示的幫助主題。
目前三十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.9】為例10.4中的“幫助…”命令按鈕(Command6)編寫(xiě)事件過(guò)程,通過(guò)“幫助”對(duì)話框來(lái)顯示記事本程序的幫助文件?!皫椭卑粹o的單擊事件過(guò)程如下:PrivateSubCommand6_Click()CommonDialog1.HelpCommand=cdlHelpContentsCommonDialog1.HelpFile="c:\windows\help\notepad.hlp"CommonDialog1.ShowHelpEndSub目前三十一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)工具欄的制作有兩種方法:1.是使用命令按鈕和圖形框來(lái)手工制作2.使用ToolBar控件和ImageList控件來(lái)制作。前一種方法比較繁瑣,較少使用。后一種方法較容易,在VB中常用后一種方法。ToolBar控件和ImageList控件并沒(méi)有在工具箱里,屬于ActiveX控件,需要為工程加載“MicrosoftWindowsCommonControls6.0”控件。加載成功后控件工具欄如圖10.13所示。10.3工具欄
ImageList圖10.13添加控件成功后的工具箱ToolBar目前三十二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)ImageList控件不單獨(dú)使用,專門(mén)為其它控件提供圖像庫(kù).使用方法如下:在窗體中添加一個(gè)ImageList控件。其大小固定,運(yùn)行時(shí)不可見(jiàn)。右擊ImageList控件,選擇“屬性”,打開(kāi)“屬性頁(yè)”對(duì)話框,如圖所示。選擇“圖像”選項(xiàng)卡,單擊“插入圖片”按鈕,逐個(gè)向ImageList控件中加入圖片;如果需要?jiǎng)h除多余的圖片,選中后點(diǎn)擊“刪除圖片”按鈕。10.3.1ImageList控件目前三十三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)使用ToolBar控件具體創(chuàng)建一個(gè)工具欄,首先在窗體中添加一個(gè)ToolBar控件,設(shè)置ToolBar控件的Align屬性以控制工具欄在窗體中的位置。右擊選擇“屬性”,打開(kāi)“屬性頁(yè)”對(duì)話框。10.3.2ToolBar控件1.設(shè)置ToolBar控件中的按鈕點(diǎn)擊“按鈕”選項(xiàng)卡,如圖所示。單擊“插入按鈕”和“刪除按鈕”,可以增加或減少工具欄中的按鈕;每個(gè)按鈕需要使用ImageList控件中的哪個(gè)圖片作為外觀顯示,在“圖像”中進(jìn)行設(shè)置;“關(guān)鍵字”用于在程序代碼中引用該按鈕?!皹?biāo)題”與“描述”文本框中是在按鈕上顯示的文字及按鈕的說(shuō)明信息。在“值”下拉列表中可以設(shè)置按鈕的狀態(tài):0-tbrUnpressed為彈起狀態(tài)1-tbrPressed為按下?tīng)顟B(tài)。圖10.15“屬性頁(yè)”中“按鈕”選項(xiàng)卡目前三十四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)0-tbrDefault:普通(默認(rèn)的)按鈕。1-tbrCheck:復(fù)選框按鈕。具有按下、放開(kāi)兩種狀態(tài)。2-tbrButtonGroup:?jiǎn)芜x按鈕3-tbrSeparator:分隔符。表示將不同組或不同類的按鈕分開(kāi),如單選按鈕。4-tbrPlaceholder:占位符。5-thrDropdown:下拉式按鈕??梢越⑾吕讲藛?。10.3.2ToolBar控件圖10.15“屬性頁(yè)”中“按鈕”選項(xiàng)卡在“樣式”下拉列表中可以設(shè)置按鈕的行為特點(diǎn),并且將影響按鈕的功能。具有六種類型:目前三十五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)2.設(shè)置ToolBar控件的通用屬性,和ImageList控件建立關(guān)聯(lián)。打開(kāi)“通用”選項(xiàng)卡,在圖像列表選項(xiàng)中選擇圖像列表控件名ImageList1,這樣就建立了工具欄控件與圖像列表控件的關(guān)聯(lián)。在程序運(yùn)行時(shí),下述代碼也可建立工具欄控件與圖像列表控件的關(guān)聯(lián):PrivateSubForm_Load()Toolbar1.ImageList=ImageList1EndSub一旦工具欄控件與圖像列表控件建立了關(guān)聯(lián),ToolBar控件“屬性頁(yè)”對(duì)話框的“按鈕”選項(xiàng)卡中的“圖像”選項(xiàng)即變?yōu)橛行АV恍柙谄渲休斎雸D像庫(kù)中圖像的索引號(hào)即可將對(duì)應(yīng)的圖片添加到按鈕上。10.3.2ToolBar控件目前三十六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)3.響應(yīng)ToolBar控件事件
ToolBar控件常用的事件有兩個(gè):ButtonClick和ButtonMenuClick。前者對(duì)按鈕樣式為0-2,后者對(duì)樣式為5的菜單按鈕。(1)用索引Index確定按鈕(2)用關(guān)鍵字Key確定按鈕PrivateSubToolbar1_ButtonClick(ByvalButtonAsComctlLib.Button)SelectCaseButton.IndexCase1FileNewProcCase2FileOpenProc……EndSelectEndSub注意:第1個(gè)按鈕的Index值為1。用Index還是用Key根據(jù)實(shí)際需要,Key可讀性好,可維護(hù)性好。SelectCaseButton.KeyCase"TNew"FileNewProcCase"TOpen"FileOpenProc
目前三十七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.9】創(chuàng)建如圖所示的窗體,并編寫(xiě)程序代碼實(shí)現(xiàn)工具欄上各按鈕的功能。圖10.16例10.9界面設(shè)計(jì)設(shè)計(jì)步驟如下:1.設(shè)計(jì)界面首先在窗體上添加一個(gè)文本框,設(shè)置其Multiline屬性為T(mén)rue,ScrollBars屬性為2,添加ImageList控件,該控件包含有圖所示的六個(gè)圖形。添加ToolBar控件,在按鈕選項(xiàng)卡中逐個(gè)添加按鈕。各按鈕屬性設(shè)置如表10.6所示。索引關(guān)鍵字樣式圖像索引1B1-tbrCheck12I1-tbrCheck23U1-tbrCheck343-tbrSeparator05lt2-tbrButtonGroup46ct2-tbrButtonGroup57rt2-tbrButtonGroup6目前三十八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)圖10.16例10.9界面設(shè)計(jì)2.編寫(xiě)程序代碼PrivateSubForm_Load()Toolbar1.ImageList=ImageList1EndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.Key
Case"B"Text1.FontBold=NotText1.FontBoldCase"I"Text1.FontItalic=NotText1.FontItalicCase"U"Text1.FontUnderline=NotText1.FontUnderlineCase"lt"Text1.Alignment=0Case"ct"Text1.Alignment=2Case"rt"Text1.Alignment=1EndSelectEndSub目前三十九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.4.1鍵盤(pán)事件
在VisualBasic中,提供KeyPress、KeyDown、KeyUp三種鍵盤(pán)事件,窗體和接受鍵盤(pán)輸入的控件都識(shí)別這三種事件。
KeyPress按下對(duì)應(yīng)某ASCII字符的鍵。
KeyDown
按下鍵盤(pán)的任意鍵。
KeyUp
釋放鍵盤(pán)的任意鍵只有獲得焦點(diǎn)的對(duì)象才能夠接受鍵盤(pán)事件。
1.KeyPress事件在按下與ASCII字符對(duì)應(yīng)的鍵時(shí)將觸發(fā)KeyPress事件。
10.4鍵盤(pán)和鼠標(biāo)事件目前四十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)KeyPress事件過(guò)程的語(yǔ)法格式是:SubObject_KeyPress(KeyAsciiAsInteger)其中:Object是指窗體或控件對(duì)象名,KeyAscii參數(shù)返回對(duì)應(yīng)于ASCII字符代碼的整型數(shù)值。
例如,如果希望將文本框中的所有字符都強(qiáng)制轉(zhuǎn)換為大寫(xiě)字符,則可在輸入時(shí)使用此事件轉(zhuǎn)換大小寫(xiě):PrivateSubText1_KeyPress(KeyAsciiAsInteger)KeyAscii=Asc(Ucase(Chr(KeyAscii)))EndSub10.4鍵盤(pán)和鼠標(biāo)事件KeyPress事件只識(shí)別
Enter、Tab和Backspace鍵。不能夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。
目前四十一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.10】設(shè)計(jì)一個(gè)應(yīng)用程序,在窗體中建立一個(gè)文本框和一個(gè)標(biāo)簽,在文本框中限定只能輸入英文字母、空格和BackSpace鍵,當(dāng)從鍵盤(pán)向文本框輸入英文字符時(shí),將其轉(zhuǎn)換成大寫(xiě)字母并顯示在標(biāo)簽中。程序運(yùn)行結(jié)果如圖所示。10.4鍵盤(pán)和鼠標(biāo)事件圖10.17例10.10運(yùn)行結(jié)果PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimcharAsStringSelectCaseKeyAsciiCase65To90,97To122,32char=UCase(Chr(KeyAscii))Label1.Caption=Label1.Caption&charCase8Label1.Caption=Left(Label1.Caption,Len(Label1.Caption)-1)CaseElseKeyAscii=0EndSelectEndSub目前四十二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)2.KeyDown和KeyUp事件
當(dāng)一個(gè)對(duì)象具有焦點(diǎn)時(shí)按下(KeyDown)
或松開(kāi)
(KeyUp)一個(gè)鍵時(shí)發(fā)生。它們報(bào)告鍵盤(pán)本身準(zhǔn)確的物理狀態(tài):按下鍵
(KeyDown)及松開(kāi)鍵
(KeyUp)。
KeyDown和KeyUp事件能夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。KeyUp和KeyDown事件過(guò)程的語(yǔ)法格式如下:SubObject_KeyDown(KeyCodeAsInteger,ShiftAsInteger)SubObject_KeyUp(KeyCodeAsInteger,ShiftAsInteger)說(shuō)明:(1)KeyCode參數(shù)值是用戶所操作的鍵的掃描代碼,它告訴事件過(guò)程用戶所操作的物理鍵,例如,不管鍵盤(pán)處于小寫(xiě)狀態(tài)還是大寫(xiě)狀態(tài),用戶在鍵盤(pán)上按下“A”健,KeyCode參數(shù)值相同。對(duì)于有上檔字符和下檔字符的鍵,其KeyCode也是相同的,為下檔字符的ASCII碼。目前四十三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
keycode參數(shù)通過(guò)
ASCII值或鍵代碼常數(shù)來(lái)識(shí)別鍵。字母鍵的鍵代碼與此字母的大寫(xiě)字符的
ASCII值相同。所以
“A”和
“a”的
keycode都是由
Asc(“A”)返回的數(shù)值。表10.7Keycode和KeyAscii值目前四十四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)2.KeyDown和KeyUp事件
KeyUp和KeyDown事件過(guò)程的語(yǔ)法格式如下:SubObject_KeyDown(KeyCodeAsInteger,ShiftAsInteger)SubObject_KeyUp(KeyCodeAsInteger,ShiftAsInteger)說(shuō)明:(2)Shift參數(shù)是一個(gè)整數(shù),表示鍵盤(pán)事件發(fā)生時(shí)Shift、Ctrl和Alt鍵的狀態(tài)。Shift是一個(gè)位域參數(shù),由若干位組成,每個(gè)位的信息指出某一種狀態(tài)是打開(kāi)(用1表示)還是關(guān)閉(用0表示)。其中最右側(cè)三位用來(lái)表示Shift、Ctrl和Alt鍵的狀態(tài),相應(yīng)二進(jìn)制位為0時(shí)表示未按下對(duì)應(yīng)鍵,為1時(shí)表示按下了對(duì)應(yīng)鍵。Alt鍵Ctrl鍵Shift鍵第3位第2位第1位目前四十五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)例如:下例是用Shift參數(shù)判斷是否按下了字母的大寫(xiě)形式。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyAAndShift=1ThenMsgBox"YoupressedtheuppercaseAkey."EndifEndSub表10.8Shift參數(shù)的值二進(jìn)制值十進(jìn)制值系統(tǒng)常數(shù)意義0011vbShiftMask按Shift鍵0102vbCtrlMask按Ctrl鍵1004vbAltMask按Alt鍵0113vbShiftMask+vbCtrlMask按Shift鍵和Ctrl鍵1015vbShiftMask+vbAltMask按Shift鍵和Alt鍵1106vbCtrlMask+vbAltMask按Ctrl鍵和Alt鍵1117vbCtrlMask+vbAltMask+vbShiftMask按Shift、Ctrl和Alt鍵目前四十六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.12】設(shè)計(jì)一個(gè)程序,當(dāng)按下Alt+F5組合鍵時(shí)終止程序的運(yùn)行。
先把窗體的KeyPreview設(shè)置為T(mén)rue,再編寫(xiě)如下的程序:PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)'按下Alt鍵時(shí),Shift的值為4If(KeyCode=vbKeyF5)And(Shift=vbAltMask)ThenEndEndSub10.4鍵盤(pán)和鼠標(biāo)事件注意:KeyAscii是獲取鍵的Ascii值,就是說(shuō)你按下主鍵區(qū)的數(shù)字和按下數(shù)字鍵區(qū)的數(shù)字返回的是同一個(gè)Ascii值,同一個(gè)字母大、小寫(xiě)的KeyAscii是不同的。KeyCode值返回的相當(dāng)于每個(gè)鍵的標(biāo)號(hào),每個(gè)鍵都有一個(gè)不同的KeyCode值,因而通過(guò)KeyCode值可以判斷光標(biāo)鍵、回車鍵等鍵是否按下,可用于程序的特殊控制。目前四十七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.4鍵盤(pán)和鼠標(biāo)事件
大多數(shù)控件能夠識(shí)別鼠標(biāo)的MouseMove、MouseDown和MouseUp事件,通過(guò)響應(yīng)這些鼠標(biāo)事件,能在應(yīng)用程序?qū)κ髽?biāo)位置及狀態(tài)的變化作出響應(yīng)操作。MouseMove每當(dāng)鼠標(biāo)指針移動(dòng)到屏幕新位置時(shí)發(fā)生MouseDown
按下任意鼠標(biāo)鍵按鈕時(shí)發(fā)生MouseUp
釋放任意鼠標(biāo)鍵按鈕時(shí)發(fā)生10.4.2鼠標(biāo)事件目前四十八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)MouseMove、MouseDown、MouseUp三個(gè)事件的過(guò)程的語(yǔ)法格式如下:SubObject_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)SubObject_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)SubObject_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
說(shuō)明:
1.Object是可選的一個(gè)對(duì)象表達(dá)式,可以是窗體對(duì)象和大多數(shù)可視控件。
2.Button參數(shù)是表示按下或松開(kāi)鼠標(biāo)哪個(gè)按鈕,
10.4.2鼠標(biāo)事件目前四十九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
參數(shù)Button值參數(shù)(Button) 值 說(shuō)明vbLeftButton 1 左按鈕被按下vbRightButton 2 右按鈕被按下vbMiddleButton 4 中間按鈕被按下10.4.2鼠標(biāo)事件目前五十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)3.Shift參數(shù)包含了Alt、Ctrl和Shift鍵的狀態(tài)信息,和鍵盤(pán)事件過(guò)程中的Shift參數(shù)含義相同。如果要檢測(cè)Ctrl和Shift鍵是否同時(shí)被按下,則應(yīng)使用表達(dá)式(ShiftAndvbCtrlMask)And(ShiftAndvbShiftMask),或者表示為Shift=3。10.4.2鼠標(biāo)事件4.X,Y:表示當(dāng)前鼠標(biāo)指針的位置【例10.13】設(shè)計(jì)一個(gè)簡(jiǎn)單的繪圖應(yīng)用程序。當(dāng)按下任意鼠標(biāo)鍵并拖動(dòng)時(shí),MouseDown事件過(guò)程和一個(gè)相關(guān)的MouseMove事件過(guò)程協(xié)同工作以啟動(dòng)繪圖。MouseUp事件過(guò)程禁止繪圖。圖10.19簡(jiǎn)單畫(huà)圖程序目前五十一頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)1.添加窗體2.刪除窗體3.保存窗體10.5.1管理多重窗體10.5多重窗體與多模塊程序設(shè)計(jì)10.5.2設(shè)置啟動(dòng)窗體1.設(shè)置啟動(dòng)窗體2.啟動(dòng)時(shí)不加載窗體圖10.21“工程1-工程屬性”對(duì)話框在某些情況下,應(yīng)用程序啟動(dòng)時(shí)不加載任何窗體,如先運(yùn)行裝入數(shù)據(jù)文件的代碼,然后再根據(jù)數(shù)據(jù)文件的內(nèi)容在不同窗體中選擇要打開(kāi)的窗體。要實(shí)現(xiàn)此功能,可以在工程中添加一個(gè)標(biāo)準(zhǔn)模塊Module1,然后在標(biāo)準(zhǔn)模塊中創(chuàng)建一個(gè)名為Main的子過(guò)程,在過(guò)程中按要求進(jìn)行編程。如下面的例子所示。目前五十二頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)Submain()Dimpasswordpassword=InputBox("請(qǐng)輸入口令","用戶注冊(cè)")Ifpassword=""ThenMsgBox"沒(méi)有輸入密碼,本次程序運(yùn)行結(jié)束!",vbInformationExitSubEndIfIfpassword="123456"ThenMsgBox("歡迎使用Form1!"),vbInformation,titleForm1.ShowElseMsgBox"對(duì)不起,你不是合法用戶!,只能使用Form2",vbCritical,titleForm2.ShowEndIfEndSub10.5多重窗體與多模塊程序設(shè)計(jì)這個(gè)子過(guò)程不能放在窗體模塊中,必須放在標(biāo)準(zhǔn)模塊Module1中。如果要將SubMain過(guò)程設(shè)為啟動(dòng)對(duì)象,在“工程屬性”對(duì)話框中設(shè)置啟動(dòng)對(duì)象為“SubMain”。目前五十三頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.5.3窗體處理語(yǔ)句和方法1.Load語(yǔ)句:該語(yǔ)句用來(lái)將新創(chuàng)建的窗體加載到內(nèi)存中格式:Load窗體名2.Show方法:該方法用來(lái)顯示一個(gè)窗體格式:窗體名.Show模式其中:模式用來(lái)確定窗體的狀態(tài),有0和1兩個(gè)值。0(默認(rèn)值)表示非模態(tài)的,1表示模態(tài)。模態(tài)窗體和非模態(tài)窗體的區(qū)別。3.Hide方法:用于隱藏顯示在屏幕上的窗體格式:窗體名.Hide目前五十四頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.5.3窗體處理語(yǔ)句和方法4.Unload語(yǔ)句:該語(yǔ)句與Load語(yǔ)句的功能相反,指從內(nèi)存中刪除指定的窗體格式:UnLoad窗體名5.Print方法:該方法用于在窗體上輸出數(shù)據(jù)格式:窗體名.Print數(shù)據(jù)列表6.Cls方法:該方法用于清除程序運(yùn)行時(shí)在窗體上顯示的文本或圖形。但Cls方法并不能清除在設(shè)計(jì)階段設(shè)置的文本和圖形。格式:窗體名.Cls目前五十五頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)【例10.14】
編一個(gè)學(xué)生成績(jī)處理程序,要求如下:程序包含3個(gè)窗體和1個(gè)標(biāo)準(zhǔn)模塊主窗體是程序的主界面,提供用戶選擇操作,并根據(jù)用戶選擇的操作打開(kāi)對(duì)應(yīng)功能的窗體,主窗體的界面如圖10.22(a)所示。在主窗體上單擊“輸入成績(jī)”按鈕后,打開(kāi)輸入成績(jī)窗口,如圖10.22(b)所示。在窗體中輸入一同學(xué)4門(mén)課程成績(jī)后,單擊“返回”按鈕,將輸入的成績(jī)保存在全局變量中。在主窗體上單擊“計(jì)算成績(jī)”按鈕后,打開(kāi)計(jì)算成績(jī)窗口,如圖10.22(c)所示。評(píng)價(jià)學(xué)生的等級(jí):平均成績(jī)90分以上為優(yōu)秀,80~89為良好,70~79為中等,60~69為及格,60分以下為不及格。10.5.4多模塊程序設(shè)計(jì)示例目前五十六頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)
分析:根據(jù)題目要求,本題目有三個(gè)窗體FrmMain、Form2和Form3,三個(gè)窗體上各控件按默認(rèn)約定依次命名。還有一個(gè)標(biāo)準(zhǔn)模塊Module1,對(duì)窗體間公用的全局變量進(jìn)行了說(shuō)明。選擇啟動(dòng)對(duì)象為FrmMain窗體。
圖10.22(a)主窗體界面圖10.22(b)成績(jī)錄入界面圖10.22(c)成績(jī)輸出界面方法一:在標(biāo)準(zhǔn)模塊中定義全局變量及編寫(xiě)評(píng)級(jí)函數(shù)方法二:不添加標(biāo)準(zhǔn)模塊,把上面標(biāo)準(zhǔn)模塊里的代碼都寫(xiě)到FrmMain中,直接進(jìn)行窗體之間的數(shù)據(jù)訪問(wèn)10.5.4多模塊程序設(shè)計(jì)示例目前五十七頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.6多文檔界面設(shè)計(jì)
Windows應(yīng)用程序風(fēng)格:?jiǎn)挝臋n界面(SDI)多文檔界面(MDI)資源管理器風(fēng)格的界面要決定使用哪種界面樣式需要看應(yīng)用程序的目的。例如,一個(gè)處理學(xué)生檔案的應(yīng)用程序可能要用多文檔界面樣式,一個(gè)教師很可能會(huì)同時(shí)處理一個(gè)以上學(xué)生檔案,或者需要對(duì)兩個(gè)學(xué)生進(jìn)行比較。另一方面,日歷程序最好設(shè)成單文檔界面樣式,因?yàn)橐话悴粫?huì)同時(shí)打開(kāi)一個(gè)以上日歷。目前五十八頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.6.1多文檔界面特點(diǎn)標(biāo)準(zhǔn)窗體MDI窗體MDI子窗體
多文檔界面由父窗口和子窗口組成,一個(gè)父窗口可包含多個(gè)子窗口,子窗口最小化后將以圖標(biāo)形式出現(xiàn)在父窗口中,而不會(huì)出現(xiàn)在Windows的任務(wù)欄中。當(dāng)最小化父窗口時(shí),所有的子窗口也被最小化,只有父窗口的圖標(biāo)出現(xiàn)在任務(wù)欄中。父窗口就是MDI窗體,子窗口是指MDChild屬性為T(mén)rue的普通窗體。1.區(qū)分MDI窗體與MDI子窗體在工程資源管理器的窗口中MDI窗體、MDI子窗體和標(biāo)準(zhǔn)窗體使用不同的圖標(biāo)來(lái)顯示。如圖10.23所示,窗體圖標(biāo)的左下角有一個(gè)小窗體的為MDI子窗體。目前五十九頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)10.6.1多文檔界面特點(diǎn)2.多文檔界面的特點(diǎn)所有子窗體均顯示在MDI窗體的工作空間內(nèi)。像其他的窗體一樣,用戶能移動(dòng)子窗體和改變子窗體的大小,但它們被限制在MDI窗體工作空間內(nèi)。
當(dāng)MDI窗體最小化或關(guān)閉時(shí),它所包含的所有子窗體都會(huì)被最小化或關(guān)閉。當(dāng)各子窗體最小化時(shí),最小化圖標(biāo)將顯示在MDI窗體底部而不是在任務(wù)欄中。只有MDI窗體最小化后其圖標(biāo)才顯示在任務(wù)欄中。
當(dāng)子窗體最大化時(shí),它的標(biāo)題會(huì)與MDI窗體的標(biāo)題組合在一起顯示在MDI窗體的標(biāo)題欄上。MDI父窗體和子窗體可以有各自的菜單,活動(dòng)子窗體的菜單顯示在MDI窗體的菜單欄中,而不是顯示在子窗體中。目前六十頁(yè)\總數(shù)六十六頁(yè)\編于十七點(diǎn)在VisualBasic中創(chuàng)建多文檔界面的步驟如下:(1)打開(kāi)“工程”菜單,選擇“添加MDI窗體”,打開(kāi)“添加MDI
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版路基設(shè)計(jì)咨詢及技術(shù)支持服務(wù)合同4篇
- 2025年物流產(chǎn)業(yè)投資基金合作協(xié)議合同3篇
- 2025版零用錢消費(fèi)習(xí)慣養(yǎng)成服務(wù)合同4篇
- 2025年度柴油發(fā)電機(jī)設(shè)備采購(gòu)與能源審計(jì)服務(wù)協(xié)議4篇
- 二零二五年度酒店管理加盟代理合作協(xié)議書(shū)3篇
- 第10課《“印”出來(lái)的畫(huà)》(說(shuō)課稿)-2023-2024學(xué)年一年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)人教版
- 2025版教育類網(wǎng)絡(luò)課程設(shè)計(jì)與制作服務(wù)合同協(xié)議3篇
- 2025年城市綠化帶更新改造工程合同4篇
- 2025年滬教新版共同必修2物理下冊(cè)月考試卷含答案
- 二零二五年度淋浴房產(chǎn)品進(jìn)出口貿(mào)易合同范本4篇
- 三清三關(guān)消防知識(shí)
- 資本金管理制度文件模板
- 2025年生產(chǎn)主管年度工作計(jì)劃
- 2025年急診科護(hù)理工作計(jì)劃
- 高中家長(zhǎng)會(huì) 高二寒假線上家長(zhǎng)會(huì)課件
- 違規(guī)行為與處罰管理制度
- 個(gè)人教師述職報(bào)告錦集10篇
- 四川省等八省2025年普通高中學(xué)業(yè)水平選擇性考試適應(yīng)性演練歷史試題(含答案)
- 《內(nèi)部培訓(xùn)師培訓(xùn)》課件
- 《雷達(dá)原理》課件-3.3.3教學(xué)課件:相控陣?yán)走_(dá)
- 西方史學(xué)史課件3教學(xué)
評(píng)論
0/150
提交評(píng)論