




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、菜單程序設計菜單程序設計2010年12月05日星期日下午09: 52菜單程序設計一、菜單菜單的基本作用:菜單的基本類型:幾個常用術語:- -菜單條出現(xiàn)在窗體標題的下面,包含每個菜單的標題。- -菜單包含命令列表或子菜單名。- -菜單中列出的每一項。- -從某個菜單項分支出來的另外的一個菜單。具有子菜單的菜單項右邊帶 有一個三角符號標志。- -分隔條是在菜單項之間的一條水平直線,用于修飾菜單。- -彈出式菜單是另一種形式的菜單,在按下鼠標右鍵時出現(xiàn),它是一個上 下文相關的菜單。使用菜單編輯器可以為應用程序創(chuàng)建自定義菜單并定義其屬性,利用這個 編輯器,可以建立下拉式菜單,最多可達 6層。啟動菜單編
2、輯器的方法有4種(先選中一個窗體,使之為活動窗體 廣使用菜單"工具"/”菜單編輯器”;啟動后,彈出菜單設計窗口。菜單編輯器窗口分為三個部分:數(shù)據(jù)區(qū)、編輯區(qū)和菜單項顯示區(qū)。1、數(shù)據(jù)區(qū)用來輸入或修改菜單項、設置屬性。其中:隔線??稍谠撐谋究蛑休斎霐?shù)值,這個值用來在幫助文件 (用HelpFile屬性設置) 中查找相應的幫助主題。用來確定菜單或菜單項是否出現(xiàn)或在什么位置出現(xiàn)。該列表有4個選項:0-None菜單項不顯示2、編輯區(qū)共有7個按鈕。3、菜單項顯示區(qū)(菜單列表)位于菜單設計窗口的下部,輸入的菜單項在這里顯示出來,并通過內縮符 號()表明菜單項的層次。條形光標所在的菜單項是&q
3、uot;當前菜單項"。說明:菜單項是一個總的名稱,包括4個方面的內容:菜單名(菜單標題)、菜單 命令、分隔線和子菜單。內縮符號由4個點組成,它表明菜單項所在的層次,一個內縮符號 (4個點) 表示一層,兩個內縮符號(8個點)表示兩層最多20個點,即5個內縮符號, 它后面的菜單項為第六層。如果一個菜單項前面沒有內縮符號,則該菜單為菜 單名,即菜單的第一層。隔線。下面通過一個簡單的例子說明菜單程序設計的基本方法和步驟。例1根據(jù)題意,可以將菜單分為3個主菜單項,分別為"計算加、減"、”計算乘、 除"和"消除與退出",它們各有兩個子菜單,即:”
4、計算加、減”的子菜單項:力口、減”計算乘、除"的子菜單項:乘、除”消除與退出”的子菜單項:清除、退出另外,為了輸入和顯示,再建立兩個文本框(輸入數(shù)據(jù))和四個標簽。1、界面:其中Lable4的BorderStyle屬性設置為1。2、菜單項屬性:3、設計菜單:步驟:其它兩個主菜單的建立與前面步驟類似,不再重復。設計完成后的窗口如 下圖。"確定"后結束。設計完成后,窗體頂行顯示主菜單項,單擊某個主菜單項,即可下拉顯示 其子菜單。4、程序代碼:每個菜單項都可以接收Click事件。每個菜單項都有一個名字(Name屬性), 將這個名字與Click放在一起,組成Click事件過
5、程。Option Explicit Private Sub Add_Click()x=Val(Text1.Text)+Val(Text2.Text)End Sub Private Sub Min_Click()x=Val(Text1.Text)-Val(Text2.Text)Private Sub Mul_Click()x=Val(Text1.Text)*Val(Text2.Text)Private Sub Div_Click()If Text2.Text="0"Or Text2.Text=""Then End Sub Private SubClean_
6、Click()Textl.Text=""End Sub Private Sub Quit_Click()5、運行程序:在兩個文本框中輸入數(shù)字后,分別單擊各菜單項或熱鍵,看一看執(zhí)行結果。本例中的"有效"屬性和"可見"屬性采用默認的"True",只有在必要時才設 置其它屬性。下面將討論這些情況。在使用Windows或VB菜單時,已見過"與眾不同”的菜單項,如有的呈灰色, 單擊這類菜單項不執(zhí)行任何操作;有的菜單項前有 ",”號,或菜單項的某個字 母下面有下劃線等等。下面將介紹如何在菜單中增加這些屬性。
7、1、菜單項的有效屬性(有效性控制)為了使程序正常運行,有時需要使某些菜單項失效,以防止出現(xiàn)誤操作。 例如前面的例子中,只有在文本框中輸入數(shù)字后才能進行運算,否則運算沒有 意義。因此,如果尚未輸入數(shù)據(jù),則應使執(zhí)行加、減、乘、除的菜單項失效, 在輸入數(shù)據(jù)后才生效。為此,可增加下面兩個事件過程:Private Sub Text1_Change()If Text1.Text=""Then End Sub Private Sub Text2_Change()If Text2.Text=""Then End Sub除增加上述兩個事件過程外,還要方法:打開"
8、菜單編輯器”窗口,把對應于這4個菜單項的數(shù)據(jù)區(qū)中的"有效 ”屬性復選框中的","去掉即可。2、菜單項的復選屬性(菜單項的標記)所謂菜單項標記,就是在菜單項前加上一個"V"。它有兩個作用:增加方法:一般來說,菜單項標記通常是動態(tài)的加上或取消的,所以,程序代碼中根 據(jù)執(zhí)行情況設置。例2界面:一個文本框、6個標簽。菜單屬性:設計菜單:編寫代碼:Option Explicit Private Sub octv_Click()answer=Val(Text1.Text)Private Sub Hexv_Click()answer=Val(Text1.Te
9、xt)Private Sub dec_Click()answer=Val(Text1.Text)End Sub Private Sub Clean_Click()Textl.Text=""End Sub Private Sub Quit_Click()End End Sub例3在窗體上添加一個文本框,用來輸入要顯示的文本。菜單屬性:菜單設置見教材P244代碼如下:Private Sub Form_Load()Private Sub mnunew_Click()'菜單項的單擊事件Private Sub mnuopen_Click()Private Sub mnuclo
10、se_Click()Private Sub mnuexit_Click()Private Sub mnubold_Click()Private Sub mnuitalic_Click()3、菜單的可見屬性同"有效"屬性相似,可以利用"可見”屬性來取消用戶對某些特定菜單項的 訪問權限。若關閉某個特定的菜單項的“可見”屬性,該菜單項將從菜單中被移 走。用戶將不知道該菜單項的存在。例4打開菜單編輯器,在菜單列表中選擇退出菜單項,單擊"插入"按鈕,在 退出菜單項之前插入一個菜單項。4、設置鍵盤選擇菜單項在一般情況下,菜單項通過鼠標選擇,即單擊某個菜單項
11、,執(zhí)行相應的操 作。在VB中,也可以通過鍵盤選擇所需的菜單項。用鍵盤選擇有兩種方法:前面已介紹過熱鍵的設置方法。用熱鍵可以直接執(zhí)行菜單命令,不必一級 一級地下拉菜單,速度較快,適合熟悉鍵盤的用戶使用。所謂訪問鍵,就是菜單項中加了下劃線的字母,只要按 Alt和加了下劃線 的字母,就可以選擇相應的菜單項。用訪問鍵選擇菜單項時,必須一級一級地 選擇。也就是只有在下拉顯示下一級菜單后,才能用 Alt和加了下劃線的字母 鍵選擇。訪問鍵的設置說明:任何5、創(chuàng)建菜單控件數(shù)組菜單控件數(shù)組就是在同一菜單上共享相同名稱和事件過程的菜單工程的集 合。菜單控件數(shù)組用于:在運行時要創(chuàng)建一個新菜單項,它必須是菜單控件數(shù)組
12、中的成員每個菜單控件數(shù)組元素都由惟一的索引值來標識,該值在菜單編輯器上 "Index屬性框”中指定。當一個控件數(shù)組成員識別一個事件時,VB將其Index屬性作為一個附加的參數(shù)傳遞給事件過程。事件過程必須包含有核對Index屬性的代碼,因而可以判斷出正在使用的是哪一個控件。例5:菜單項名稱索引快捷鍵mnuFont.粗體粗體 mnuBold Ctrl+B.斜體余體 mnuItalic Ctrl+I.大小大小 mnuSize 10mnuFS 20mnuFS 30mnuFS通過菜單編輯器中創(chuàng)建菜單控件數(shù)組的步驟:同樣,所有的控件也可以用這種方法創(chuàng)建控件數(shù)組。通常把 OptionButton
13、和CheckBox控件設置為控件數(shù)組。使用菜單數(shù)組和控件數(shù)組有下述優(yōu)點:可以用For循環(huán)方便的訪問每一個對象菜單控件數(shù)組mnuFS勺Click事件響應代碼如下:Private Sub mnuFS_Click(Index as Integer)Select Case Index end sub 6、菜單項的增減(動態(tài)菜單)動態(tài)菜單是指隨著應用程序的運行而不斷改變的一種菜單,在運行時菜單 可以增長。Word軟件的"文件”菜單是一個典型的動態(tài)菜單,菜單中列出了最近 使用過的文件名,這部分內容隨著應用程序的運行而不斷改變的。而用前面的 方法建立的菜單是固定的,菜單項不能增減。為了增加或減少菜
14、單項,必須在 菜單編輯器"窗口中,對原來的菜單進行增刪。使用動態(tài)菜單在應用程序中一個控件數(shù)組含有若干個控件,這些控件的名稱相同,所使用的事件過程 相同,但其中的每個元素可以有自己的屬性。和普通數(shù)組一樣,通過下標 (Index)訪問控件數(shù)組中的元素??丶?shù)組可以在設計階段建立(見添加控件一 節(jié)),也可以在程序運行階段建立。菜單項的增減是通過菜單控件數(shù)組實現(xiàn)的。菜單控件數(shù)組和普通數(shù)組一樣, 也是通過下標來訪問數(shù)組中的元素(這里為菜單項)的。菜單控件數(shù)組也一樣可 以設計時建立、可以在運行時建立。具體操作:如設計時對名稱為 mnuRecentFile的分隔條菜單控件的Index 屬性進行了賦
15、值,它自動地成為控件數(shù)組的一個元素,當創(chuàng)建 mnuRecentFile(O)時,實際上創(chuàng)建了一個在運行時不可見的分隔符條。當運行 時用戶第一次存儲一個文件,這個分隔條就會變得可見,且第一個文件名被加 到該菜單上。運行時每存儲一個文件,則會再裝入一個菜單項到該數(shù)組中,從 而使該菜單增長(當然,菜單也不能無限增長)。運行時創(chuàng)建的控件可以使用 Hide方法或者設置該控件的Visible屬性為False來隱藏。當用戶選取一個菜 單控件時,一個Click事件則出現(xiàn)。需要在代碼中為每個菜單控件編寫一個 Click事件過程(除分隔符條以外的所有菜單控件都能識別Click事件)。在菜單事件過程中編寫的代碼與在
16、控件任何其它過程中編寫的代碼完全相同。一旦 菜單標題被選取,VB將自動地顯示一個菜單。例5在字體不可見后插入一個菜單項,標題"-",名稱:"mnuRecentFile"," 可見”屬性值為:在"新建”文件的程序代碼中作如下修改(藍色部分是增加的內容):Private Sub Form_Load()End Sub Private Sub mnuopen_Click()關于函數(shù)Mid$、Len:中部截取函數(shù)Mid$功能:用來截取字符串中間的一比部分。格式: Mid$(字符串,p, n)a$="abcdefghijk"c
17、def Mid$函數(shù)的第三個自變量可以省略,在這種情況下,將從第二個自變 量指定的位置向后截取到字符串的末尾。字符串長度測試函數(shù)Len功能:測試字符串的長度,也可以測試變量的存儲空間,它的自變量可以 是字符串,也可以是變量名。Len(變量名)例如:a$="abcdefghijk"11 a=Len(textvar#)8 42例5設有一個剛剛建立的菜單,它有一個主菜單”應用程序”,具下有兩個子菜 單"增加應用程序"、"減少應用程序”及分隔線。要求單擊"增加應用程序"時在 分隔條下增加一個新的菜單項,單擊"減少應用程序&
18、quot;時刪除分隔線下面一個指 定的菜單項,如果單擊新增加的菜單項,則可以執(zhí)行這一指定的應用程序。原來菜單:接下來,按以下步驟操作:(1)打開菜單編輯器(2)設置菜單屬性如下:最后一項是新輸入的,它是一個子菜單,但暫時看不見。輸入 "索引"值0 以使"AppName菜單項成為菜單控件數(shù)組,AppName(0足控件數(shù)組的第一個元素(3)編寫添加菜單項代碼:單擊”增加應用程序"菜單項,在程序中添加代碼:Dim menucounter As Integer msg="Enter file path :"End Sub以上僅是一個練習,在實
19、際應用時,可以通過 "通用對話框”打開文件,然 后再將打開的文件名作為菜單項顯示,這樣代碼可改為 (窗體上已添加了通用對 話框控件):Private Sub AddAp_Click()With CommonDialog1 menucounter=menucounter+1 End Sub(4)編寫刪除菜單項代碼:在運行時用load語句增加的菜單項可以使用Unload語句刪除,但不能刪 除設計時建立的菜單項。單擊”減少應用程序"菜單項,在程序中添加代碼:Private Sub DelAp_Click()Dim n,i As Integer End Sub說明:從過程中可以看出
20、,刪除指定菜單項的操作并不是直接進行的,而 是從被刪除的菜單項開始,用后面的菜單項覆蓋前面的菜單項,然后再刪除最 后一個菜單項。功能:設計分為兩步:首先用菜單編輯器建立菜單,這一步與前面介紹的基本相 同,唯一的區(qū)別是,必須把菜單名(即主菜單項)的可見屬性設置為False(子菜 單項不要設置為False);第二步用PopupMen時法彈出顯示。PopupMen此法用來顯示彈出菜單,object.PopupMenu menuname,flags,x,y,boldcommand其中:Object(對象)窗體名。Menunam碟單名)-指在菜單編輯器中定義的X、Y-彈出式菜單在窗體上的顯示位置的 X、
21、Y坐標(與Flags參數(shù)配合使 用)。Boldcommand/旨定彈出式菜中的彈出式菜單控件的名字,用以顯示為黑體 正文標題。Flags-該參數(shù)是一個數(shù)值或符號常量,指定彈出式菜單的位置和行為,其 取值分為兩組,一組用來指定菜單位置,另一組用來定義特殊的菜單行為,如 下表:指定菜單位置定義菜單行為說明:PopupMenUT法的6個參數(shù)中,除"菜單名”外,其余參數(shù)都是可選的。當 省略了 "對象"時,彈出式菜單只能在當前窗體中顯示。如果需要在其它窗體中 顯示彈出菜單,則必須加上窗體名。Flags的兩組參數(shù)可以單獨使用,也可以聯(lián)合使用。當聯(lián)合使用時,每組 中取一個值,兩
22、個值相加;如果使用符號常量,則兩個值用 Or連接。X、Y分別用來指定彈出式菜單顯示位置的橫、縱坐標,如果省略,則彈出 菜單在鼠標光標的當前位置顯示。彈出式菜單的"位置”由X、Y、Flags參數(shù)共同指定。如果省略這幾個參數(shù), 則在單擊鼠標右鍵彈出菜單時,鼠標光標所在位置為彈出式菜單左上角的坐標。在默認情況下,以窗體的左上角為坐標原點。如果只省略 Flags參數(shù),不省略 X、Y參數(shù),則X、Y為彈出式菜單左上角的坐標;如果同時使用 X、Y及Flags 參數(shù),則彈出菜單的位置分為一下幾種情況:Flags=0 X、Y為彈出式菜單左上角的坐標Flags=4 X、Y為彈出式菜單頂邊中間的坐標Fla
23、gs=8 X、Y為彈出式菜單右上角的坐標PopupMenu方法放在MouseDow心件中,該事件響應所有的鼠標單擊操作。 按照慣例,一般通過單擊鼠標右鍵顯示彈出菜單,這可以用Button參數(shù)來實現(xiàn)。對于兩個鍵的鼠標來說,左鍵的 Button參數(shù)值為1,右鍵的Button參數(shù)值為2 因此可以強制使用右鍵來響應 MouseDowi#件而顯示彈出菜單:If Button=2 Then PopupMenu 菜單名下面舉例說明建立彈出式菜單的一般過程。例6步驟如下:Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Sin
24、gle,Y As Single)If Button=2 Then End Sub Private Sub Form_Load()Text1.Text=" 可視 化高級程序語言"End Sub因為主菜單不可見,所以不能直接下拉主菜單而單擊子菜單進入代碼窗口, 必須先進入代碼窗口(按F7鍵或雙擊窗體或執(zhí)行"視圖"菜單下的"代碼窗口 "命 令),然后分別從“對象名稱"框和"事件名稱”框中選擇對應項,然后分別編寫代 碼。Private Sub popBold_Click()Private Sub Quit_Click()運
25、行結果:工具欄(也稱為發(fā)條或者控制欄)已經成為許多基于 Windows的應用程序的 標準功能。工具欄提供了對于應用程序中最常用的菜單命令的快速訪問??梢允褂肨oolBar控件來輕松的創(chuàng)建工具欄,也可以使用應用程序向導來 創(chuàng)建工具欄,方法更加簡便。1、利用應用程序向導創(chuàng)建工具欄應用程序向導是VB6.0為用戶提供的一項功能,通過應用程序向導用戶可 以很快設計出一個標準 Windows程序的框架,其中包括窗體、菜單、工具欄、 多文檔、狀態(tài)欄、對話框、滾動條等等。設計過程是在對話中完成,設計完成 后形成應用程序的界面和框架。創(chuàng)建一個標準的應用程序框架步驟如下:2、使用ToolBar控件創(chuàng)建工具欄使用T
26、oolBar控件創(chuàng)建工具欄也是非常簡 單的工作,基本的屬性設置可以通過對話框完成。給示例 MymenuK計一個具有 四個工具按鈕的工具欄,分別對應菜單中的"新建"、"打開"、"粗體"、"斜體" 等四個菜單項,并完成相應的功能。關于"樣式"的說明:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Index End Sub Private Sub mnuBold_Click()mnuBold.Checked=Not mnuBold.Checked End Sub Private Sub mnufotesize_Click(Index As Integer)Select Case Index End Sub Private Sub mnuItalic_Click()mnuItalic.Checked=NotmnuItalic.CheckedText1.FontItalic=mnuItalic.Checked End Sub Private Sub mnuNew_Clic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)房地產開發(fā)項目可行性研究報告-0
- 深圳中小企業(yè)應對金融危機的策略
- 鋼筋后臺下料協(xié)議書
- 遺體接運冷藏協(xié)議書
- ufc格斗傷亡協(xié)議書
- 車間住宿管理協(xié)議書
- 金融投資咨詢協(xié)議書
- 項目收益兜底協(xié)議書
- 銀行特約存款協(xié)議書
- 長久發(fā)展入股協(xié)議書
- DB5301-T 98-2023 改性磷石膏綜合利用礦山生態(tài)修復環(huán)境風險評估規(guī)范
- 急性胃腸炎的健康宣教
- 養(yǎng)殖羊購銷合同范例
- 內鏡室工作人員職業(yè)防護制度
- 2025年工會知識競賽題庫200題及答案(完整版)
- 完整版高中古詩文必背72篇【原文+注音+翻譯】
- 藥房考試試題及答案
- 2025年廣東省廣州南沙經濟技術開發(fā)區(qū)商務局招聘編外1人歷年自考難、易點模擬試卷(共500題附帶答案詳解)
- 飲水安全保障體系-深度研究
- 丙肝有關的考試題及答案
- 2025起重工(技師)技能鑒定精練考試指導題庫及答案(濃縮300題)
評論
0/150
提交評論