第10章菜單程序設計_第1頁
第10章菜單程序設計_第2頁
第10章菜單程序設計_第3頁
第10章菜單程序設計_第4頁
第10章菜單程序設計_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第10章 菜單程序設計 菜單對我們來說是非常熟悉的,在Windows環境下,幾乎所有的應用軟件都是通過菜單來實現各種操作。菜單用于給命令進行分組,使用戶能夠更方便、更直觀地訪問這些命令。本章將介紹VB菜單的使用。10.1 概 述 菜單的作用基本有兩個:一是提供人機對話的界面,以便讓用戶選擇應用系統的各種功能;二是管理應用系統,控制各種功能模塊的運行。一個高質量的菜單程序,不僅能使系統美觀,而且能使操作者使用方便,并可避免由于誤操作而帶來的嚴重后果。 在實際應用中,菜單可分兩種基本類型,即下拉式菜單和彈出式菜單。用鼠標右鍵單擊窗體時所顯示的菜單就是彈出式菜單。10.1.1 下拉菜單 下拉式菜單是

2、一種典型的窗口式菜單。窗口是指屏幕上一個特定的矩形區域。它可以從屏幕上消失,也可以重新顯示在屏幕上,各個窗口之間也允許覆蓋。下拉式菜單自上而下在屏幕上“下拉”一個個窗口菜單,供用戶選擇或輸入信息。在Windows及各種應用軟件中,下拉式菜單得到了廣泛的應用。 在下拉式菜單系統中,一般有一個主菜單,其中包括若干選擇項。主菜單的每一項又“下拉”出下一級菜單,這樣逐級下拉,用一個個窗口的形式彈出在屏幕上,操作完畢即可從屏幕上消失,并恢復原來的屏幕狀態。1.下拉菜單的優點 (1)整體感強,操作一目了然,界面友好、直觀、使用方便,易于學習和掌握。 (2)具有導航功能。在下拉式菜單中,用戶能方便地選擇所需

3、要的操作,隨時可以靈活地轉向另一功能,為用戶在各個菜單的功能間導航。 (3)占用屏幕空間小,通常只占用屏幕(窗體)最上面一行,在必要時下拉出一個子菜單。這樣可以使屏幕(窗體)有較大的空間,用來顯示各種處理過程等。2.下拉菜單的結構 在VB中,下拉式菜單在一個窗體上設計,窗體被分為3部分:第一部分為菜單欄(或主菜單行),它是菜單的常駐行,位于窗體的頂部(窗體標題的下面),由若干個菜單標題組成;第二部分為子菜單區,這一區域為臨時性的彈出區域,只有在用戶選擇了相應的主菜單項后才會彈出子菜單,以供用戶進一步選擇菜單的子項,子菜單中的每一項是一個菜單命令或分隔條,稱為菜單項;第三部分為工作區,程序運行時

4、可以在此區域內進行輸出輸入操作。圖10.1顯示出寫字板下拉式菜單的一般結構。 在用VB設計下拉式菜單時,把每個菜單項(主菜單或子菜單項)看做是一個圖形對象,即控件,并具備與某些控件相同的屬性。10.1.2 彈出式菜單 彈出式菜單是一種小型的菜單,它可以在窗體的某個地方顯示出來,對程序事件作出響應。通常用于對窗體中某個特定區域有關的操作或選項進行控制,例如用來改變某個文本區的字體屬性等。與下拉式菜單不同,彈出式菜單不需要在窗口頂部下拉打開,而是通過單擊鼠標右鍵,在窗口(窗體)的任意位置打開,因而使用方便,具有較大的靈活性。10.1.3 設計菜單的步驟 設計菜單的操作步驟如下:(1)建立窗體,添加

5、控件。(2)打開“菜單編輯器”窗口。(3)設置各菜單項屬性。(4)為相應的菜單命令添加事件過程。10.1.4 菜單編輯器 對于可視語言(如VB、VFP、VC等)來說,菜單的設計要簡單和直觀得多,因為它省去了屏幕位置計算,也不需要保存和恢復屏幕區域。全部設計都在一個窗口中完成。利用這個窗口,可以建立下拉式菜單,最多可達6層。 在VB中,設計菜單是通過菜單編輯器,即菜單設計窗口來完成的。打開菜單編輯器有以下4種方法:10.1.4 菜單編輯器 (1)在VB主設計窗口中,選擇“工具”中的“菜單編輯器”選項。 (2)使用熱鍵Ctrl+E。 (3)單擊工具欄中的“菜單編輯器”按鈕。 (4)在要建立菜單的窗

6、體上單擊鼠標右鍵,將彈出一個菜單,如圖10.3所示,然后單擊“菜單編輯器”命令。 說明:只有當某個窗體為活動窗體時,才能用上面的方法打開“菜單編輯器”窗口。打開后的“菜單編輯器”窗口如圖10.3所示。 “菜單編輯器”窗口分為3個部分,即數據區、編輯區和菜單項顯示區。1.數據區 用來輸入或修改菜單項、設置屬性。分為若干欄,各欄的作用如下:(1)標題:是一個文本框,用來輸入所建立菜單的標題及菜單中每個菜單項的標題,相當于控件的Caption屬性。如果在“標題”欄內,只輸入一個減號(-),則可在菜單中加入一條分隔符。在輸入菜單欄項時,如果在字母前加上“&”,那么該字母就成了熱鍵字母。在顯示菜

7、單時在該字母下加上一條下劃線,可以通過Alt+帶下劃線的字母,來打開菜單或執行相應的菜單命令。1.數據區(2)名稱:也是一個文本框,由用戶輸入菜單項的名稱,在程序中用來標識該菜單項,相當于控件的Name屬性,它不會在菜單項顯示區中顯示出來。在標題文本框中,輸入了一個菜單標題,在名稱文本框中,應有一個對應的菜單名稱。分隔符也要有對應的名稱。(3)索引:用來為控件數組設計下標。(4)快捷鍵:是一個列表框,用來設置菜單項的快捷鍵。單擊右端的箭頭,將下拉顯示可供使用的快捷鍵。在此可選擇輸入與菜單項等價的快捷鍵。(5)幫助上下文:是一個文本框,可在該框中輸入數值,這個值用來在幫助文件(用HelpFile

8、屬性設置)中查找相應的幫助主題。(6)協調位置:是一個列表框,用來確定菜單或菜單項是否出現或在什么位置出現。單擊右端的箭頭,將下拉一個列表,如圖10.4所示。該列表有4個選項,其作用如下:作用: 0-None 菜單項不顯示 1-Left 菜單項靠左顯示 2-Middle 菜單項居中顯示 3-Right 菜單項靠右顯示1.數據區(7)復選:是一個檢查框,當選擇該項時,可以在相應的菜單項邊上指定記號(例如“”),表示該菜單項是一個選項。(8)有效:是一個檢查框,該檢查框決定菜單項是否可選(有效)。當該檢查框被選中時,表示菜單項的Enabled屬性為True,為默認狀態,程序執行時菜單高亮度顯示,是

9、可選的;如果該項沒有被選中,Enabled屬性為False,在程序執行時該菜單項變成灰色,表示不能被用戶選擇。 (9)可見:是一個檢查框,該檢查框確定菜單項是否可見。若該檢查框被選中,表示該菜單項的Visible屬性為True,即菜單項可見。若該檢查框沒被選中,表示該菜單項的Visible屬性為False,即菜單項不可見。(10)顯示窗口列表:當該選項被設置為“On”(框內有“”)時,將顯示當前打開一系列子窗口。用于多文檔應用程序。2.編輯區 編輯區共有7個按鈕,用來對輸入的菜單項進行簡單的編輯。菜單在數據區輸入,在菜單項顯示區顯示。(1)“”和“”按鈕:用來產生或取消內縮符號,用來確定菜單的

10、層次。單擊一次“”按鈕,可以產生4個點,單擊一次“”按鈕,則可以刪除4個點。前面加“.”,表示該菜單項為下一級的菜單項。如果選定了某菜單項后,再按“”按鈕,前面的省略號將取消,表示該菜單是上一級的菜單項。(2)“”和“”按鈕:用來改變菜單項的位置。把條形光標移到某個菜單項上,單擊“”按鈕,將使該菜單項上移,單擊“”按鈕,將使該菜單項下移。(3)“下一個”按鈕:用來換行,設置下一個菜單項。(4)“插入”按鈕:在選定的菜單項前,插入一個菜單項。(5)“刪除”按鈕:刪除當前(即條形光標所在的)菜單項。3.菜單項顯示區位于“菜單編輯器”窗口的下部,輸入的菜單項在這里顯示出來,并通過內縮符號(.),表明

11、菜單項的層次。條形光標所在的菜單項是“當前菜單項”。說明:(1)“菜單項”是一個總的名稱,它包括4個方面的內容:菜單名(菜單標題)、菜單命令、分隔線和子菜單。(2)內縮符號由4個點組成,它表明菜單項所在的層次,一個內縮符號(4個點)表示一層,兩個內縮符號(8個點)表示兩層,最多為20個點,即5個內縮符號,它后面的菜單項是第六層。如果一個菜單項前面沒有內縮符號,則該菜單為菜單名,即菜單的第一層。(3)只有菜單名沒有菜單項的菜單稱為“頂層菜單”,在輸入這樣的菜單項時,通常在后面加上一個嘆號(!)。(4)除分隔線外,所有的菜單項都可以接收Click事件。3.菜單項顯示區 【例10.1】設計一個具有算

12、術運算(+、-、)及清除功能的菜單。從鍵盤上輸入兩個數,利用菜單命令求出它們的和、差、積或商,并顯示出來。菜單每個命令都有快捷鍵。 10.3 菜單項的控制在使用Windows 或VB菜單時,有些菜單項呈灰色,在單擊這類菜單項時不執行任何操作;有的菜單項前面有“”記號,表示有效。本節介紹在菜單中增加有效性控制屬性、菜單項標記以及增減菜單項。10.3.1 有效性 控制菜單中的某些菜單項能根據執行條件的不同進行動態變化,即當條件滿足時可以執行,否則不能執行。只要把一個菜單項的“有效”屬性設置為False,就可以使菜單項的“有效”屬性失效,運行后該菜單項變為灰色;為了使一個失效的菜單項變為有效,只要把

13、它的“有效”屬性重新設置True即可實現。例如:使子菜單“加法”設置“失效”,則: A1.Enabled=False使子菜單“加法”設置“有效”,則: A1.Enabled=True10.3.2 菜單項 標記菜單項標記通過菜單設計窗口中的“復選”屬性設置,當該屬性為True時,相應的菜單項前有“”標記;如果該屬性為False,則相應的菜單項前沒有“”標記。但是,菜單項標記通常是動態地加上或取消的,因此應在程序代碼中根據執行情況設置。10.3.3 菜單項的增減用前面的方法建立的菜單是固定的,菜單項不能自動增減。為了增加或減少菜單項,必須打開菜單編輯窗口,對原來的菜單進行增刪。菜單項的增減是通過控

14、件數組來實現的。一個控件數組含有若干個控件,這些控件的名稱相同,所使用的事件過程相同,但其中的每個元素可以有自己的屬性。和普通數組一樣,可以通過下標(Index)訪問控件數組中的元素。控件數組可以在設計階段建立,也可以在運行時建立。 【例10.2】利用【例10.1】設計的菜單為基礎,增加菜單項增減功能。當用戶在窗體上單擊時,在“計算2”菜單中,增加“平方和”、“立方和”兩條命令。當用戶在窗體上雙擊時,在“計算2”菜單中,刪除這兩個命令。 10.4 彈出式菜單在實際應用中,除下拉式菜單外,Windows還廣泛使用彈出式菜單,幾乎在每一個對象上單擊鼠標右鍵都可以顯示一個彈出式菜單。彈出式菜單也稱快

15、捷菜單。建立彈出式菜單通常分兩步進行:首先用“菜單編輯器”建立菜單,然后用PopupMemu方法彈出顯示。第一步的操作與前面介紹的方法基本相同,惟一的區別是,必須把主菜單項的“可見”屬性設置為False。 格式:對象.PopupMenu 菜單名,標志,X,Y 功能:PopupMenu方法用來顯示彈出式菜單。 說明: (1)對象:是窗體名。 (2)菜單名:是在“菜單編輯器”中定義的主菜單項名,“可見”屬性設置為False,子菜單項不要設置為False。 (3)X、Y:是彈出式菜單在窗體上的顯示位置。如果省略,則彈出式菜單在鼠標光標的當前位置顯示。 (4)標志:指定彈出式菜單的行為。 當標志為0時

16、,彈出式菜單中的項只能對鼠標左鍵起反應。 當標志為1時,彈出式菜單中的項對鼠標左鍵和右鍵都起反應。 當標志為2時,PopupMenu方法只能用在MouseDown事件過程。說明(5)PopupMenu方法的事件過程:建立彈出式菜單,必須把PopupMenu方法放在MouseDown事件過程中,該事件才能響應所有的鼠標單擊操作。按照慣例,一般通過單擊鼠標右鍵顯示彈出式菜單,這可以用Button變量來實現。對于兩個按鈕的鼠標來說,左按鈕的Button變量值為 1,右按鈕的Button變量值為2。因此,可以用下面的語句強制通過單擊鼠標右鍵來響應MouseDown事件,從而才能顯示出彈出式菜單。 If Button=2 Then PopupMenu 菜單名(6)彈出式菜單的代碼輸入方法:由于主菜單項的“可見”屬性為False,不能在窗體頂部顯示,因而不能像下拉式菜單那樣通過雙擊子菜單項的方式進入代碼窗口,必須先進入代碼窗

溫馨提示

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

評論

0/150

提交評論