在Windows環(huán)境中,我們?cè)诤芏啻翱诔绦蛑卸伎梢钥吹讲藛?,程序的很多功能都是通過(guò)菜單來(lái)實(shí)現(xiàn)的,而且菜單的不同功能往往被分成不同的幾個(gè)菜單項(xiàng),這樣做的目的是為了讓使用者更方便、更快捷。
在實(shí)際應(yīng)用的程序中,通常有二種菜單,一種是彈出式菜單,另一種是下拉式菜單,我們先了解一下這二種菜單的基本特點(diǎn):
1.下拉式菜單
下拉式菜單是一種典型的窗口式菜單,它一般通過(guò)單擊窗口菜單欄中的菜單標(biāo)題來(lái)打開,如:我們?cè)诖翱谥袉螕簟拔募薄ⅰ熬庉嫛钡炔藛螘r(shí)就會(huì)顯示一個(gè)下拉菜單。
在下拉式菜單中,一般有一個(gè)主菜單,即菜單欄(一般位于窗口標(biāo)題欄的下方),其中包括一個(gè)或多個(gè)選擇項(xiàng),分別稱為菜單標(biāo)題或主菜單項(xiàng)。當(dāng)單擊一個(gè)菜單標(biāo)題時(shí),一個(gè)包含若干個(gè)菜單項(xiàng)的列表(即菜單)即被打開,這些菜單項(xiàng)可被稱為菜單命令或子菜單項(xiàng)。根據(jù)功能的不同,菜單命令多以分隔條隔開,有的菜單命令的右端具有三角符號(hào),當(dāng)鼠標(biāo)指針指向該菜單命令時(shí),會(huì)出現(xiàn)下級(jí)子菜單,在易語(yǔ)言中最多可以出現(xiàn)6級(jí)子菜單(菜8層);有的菜單命令的左邊具有“√”,表示該菜單命令正起作用……
2.彈出式菜單
從上面的介紹可以得出,下拉式菜單是顯示在窗口的菜單欄上的,而彈出式菜單不同,它是當(dāng)用戶在一個(gè)對(duì)象上單擊右鍵時(shí)顯示出來(lái)的菜單,可以在窗口的某個(gè)位置顯示,因此,它能以更靈活的方式為用戶提供更方便和快捷的操作。如,在設(shè)計(jì)階段,在窗體中單擊右鍵時(shí)顯示的菜單就是彈出式菜單。彈出式菜單有時(shí)也稱為“右鍵菜單”或“快捷菜單”。
在易語(yǔ)言中,當(dāng)窗體設(shè)計(jì)器被打開,并且被設(shè)計(jì)的窗體為活動(dòng)窗體時(shí),我們可以通過(guò)以下3種方法打開菜單編輯器:
方法1:?jiǎn)螕簟肮ぞ摺辈藛危谙吕藛沃袉螕簟安藛尉庉嬈鳌泵睢?/p>
方法2:直接按下快捷鍵Ctrl+E。
方法3:在要建立菜單的窗體上單擊鼠標(biāo)右鍵,在出現(xiàn)的快捷菜單中單擊“菜單編輯器”命令。
1.設(shè)計(jì)下拉式菜單的方法
利用菜單編輯器可以在窗體中建立下拉式菜單,基本的步驟:
① 新建一個(gè)窗體和設(shè)計(jì)用戶界面。
② 利用菜單編輯器設(shè)計(jì)各菜單項(xiàng)。
③ 利用代碼編輯窗口編寫每個(gè)個(gè)菜單項(xiàng)的事件程序。
④ 運(yùn)行調(diào)試各菜單命令。
下面我們通過(guò)例子來(lái)具體看一下下拉式菜單的設(shè)計(jì)。
例:設(shè)計(jì)一個(gè)利用菜單控制文本框中文字的字體、字號(hào)和修飾的程序。
要求:字體控制可設(shè)置為宋體、楷體、隸書3種。字號(hào)控制可設(shè)置成16、24、32三種。文字修飾可設(shè)置成常規(guī)、加粗、傾斜和加下劃線4種。
① 新建一個(gè)“Windows窗口程序”。
② 拖放一個(gè)編輯框到設(shè)計(jì)窗口,調(diào)整大小、位置,并設(shè)置編輯框的內(nèi)容初始值為“易語(yǔ)言菜單初級(jí)應(yīng)用”。
③ 利用菜單編輯器,設(shè)計(jì)一個(gè)菜單,如下圖:
注意:有些心細(xì)的同學(xué)可能已經(jīng)發(fā)現(xiàn),在32點(diǎn)大小的菜單中,名稱不是“32點(diǎn)”,而是“z32點(diǎn)”,這其實(shí)主要是因?yàn)樵谝渍Z(yǔ)言中,菜單名稱的第一個(gè)字符不能為數(shù)字或空格,所以我們就要在數(shù)字或空格之前加一個(gè)字母之類,在16點(diǎn)、24點(diǎn)二個(gè)菜單中也是這樣的。
最后設(shè)計(jì)窗口的效果如圖所示:
④ 現(xiàn)在我們就要為各菜單命令加上事件
處理程序。
我們先來(lái)看一下字體菜單中宋體這一菜
單命令的事件處理程序。
在設(shè)計(jì)窗口中單擊“字體”,在彈出的
菜單中單擊“宋體”,就會(huì)自動(dòng)打開程序設(shè)計(jì)
窗口,輸入相應(yīng)程序代碼,最終如下:
依次點(diǎn)擊各菜單項(xiàng),為各菜單命令加上事件處理程序:
編輯框1.字體.字體名稱 = “楷體_GB2312” ’字體設(shè)為“楷體”
編輯框1.字體.字體名稱 = “隸書” ’字體設(shè)為“隸書”
編輯框1.字體.加粗 = 假 ’修飾設(shè)為“正?!?編輯框1.字體.傾斜 = 假
編輯框1.字體.下劃線 = 假
編輯框1.字體.加粗 = 真 ’修飾設(shè)為“加粗”
編輯框1.字體.傾斜 = 真 ’修飾設(shè)為“傾斜”
編輯框1.字體.下劃線 = 真 ’修飾設(shè)為“加下劃線”
編輯框1.字體.字體大小 = 16 ’大小設(shè)為“16點(diǎn)”
編輯框1.字體.字體大小 = 24 ’大小設(shè)為“24點(diǎn)”
編輯框1.字體.字體大小 = 32 ’大小設(shè)為“32點(diǎn)”
⑤運(yùn)行程序,測(cè)試結(jié)果是否正確。
2.菜單項(xiàng)狀態(tài)的控制
⑴菜單有效性的控制
我們?cè)赪indows中常常可以看到有些菜單是灰色的,不可用的,有些菜單是黑色的,可用的。這其實(shí)是程序根據(jù)當(dāng)前運(yùn)行情況,將相應(yīng)的菜單設(shè)置為可用或不可用。
例:在上一例子中,如果編輯框中沒有內(nèi)容,則所以菜單項(xiàng)都不可用,如果有內(nèi)容,則菜單項(xiàng)可用。
在這里,因?yàn)槲覀円呀?jīng)對(duì)編輯框設(shè)置了一個(gè)初始值,所以我們只要判斷一下編輯框中是否有內(nèi)容,根據(jù)這個(gè)判斷來(lái)設(shè)置菜單是否禁止使用即可。如下圖:
在這里我們只設(shè)置了部分菜單,同學(xué)們可以根據(jù)上圖完成。
如果編輯框一開始沒有初始值,那么請(qǐng)同學(xué)們想一下,這個(gè)程序該如何設(shè)計(jì)才能達(dá)到我們的要求?
運(yùn)行程序后,把編輯框中的內(nèi)容刪除,看一下菜單項(xiàng)是否可用?再輸入一些內(nèi)容,看一下菜單項(xiàng)是否可用。
⑵菜單項(xiàng)標(biāo)記的控制
所謂菜單項(xiàng)標(biāo)記,就是在某個(gè)菜單項(xiàng)的左邊加一個(gè)“√”。它有兩個(gè)作用:一是可以明顯地表示當(dāng)前某個(gè)(或某些)菜單命令的狀態(tài)是打開或關(guān)閉的;二是可以表示當(dāng)前已選擇的是哪個(gè)菜單項(xiàng)。這可以在程序代碼中通過(guò)設(shè)置菜單項(xiàng)“選中”屬性值來(lái)完成。
例:在上面的例子中的“字體”菜單項(xiàng)中,當(dāng)一個(gè)字體選中時(shí),就在該字體菜單前加上“√”,在其它字體菜單是不加“√”。
我們這里以“宋體”選擇為例:
這里要注意一點(diǎn),就是在為“宋體”菜單項(xiàng)加“√”時(shí),要記得把“楷體”、“隸書”前的“√”清除。
3.設(shè)計(jì)彈出式菜單
建立彈出式菜單的方法:
① 利用菜單編輯器建立菜單,把主菜單的可視選項(xiàng)框取消。
② 利用彈出菜單函數(shù)顯示彈出式菜單。
彈出菜單的調(diào)用格式:
對(duì)象.彈出菜單 (菜單 欲彈出的菜單,[整數(shù)型 水平顯示位置],[整數(shù)型 垂直顯示位置])
其中:
l 對(duì)象可以省略,省略時(shí)表示當(dāng)前選擇的對(duì)象。
l 第一個(gè)參數(shù)“菜單”就是在菜單編輯器中建立的菜單的主菜單的名稱。
l 水平顯示位置、垂直顯示位置表示彈出式菜單顯示時(shí)的橫、縱坐標(biāo)位置,如果不指定,則在鼠標(biāo)指針位置顯示。
例:設(shè)計(jì)一個(gè)彈出式菜單,當(dāng)鼠標(biāo)在編輯框中單擊右鍵時(shí),顯示字體菜單,用來(lái)設(shè)置編輯框內(nèi)容的字體。
跟我做:
①.新建一個(gè)“窗口程序”。
②.從控件箱中拖一個(gè)編輯框,調(diào)整好大小、位置。
③.用菜單編輯器建立一個(gè)菜單,如下圖所示,注意把“字體”的可視選項(xiàng)取消,即設(shè)置為不可見。
④.選擇編輯框,在屬性欄中選擇“鼠標(biāo)右鍵被按下”事件,輸入程序:
彈出菜單 (字體)
⑤.對(duì)字體菜單中的各字體事件進(jìn)行相應(yīng)處理,同上面的例程。
⑥.運(yùn)行程序,測(cè)試結(jié)果是否正確。
請(qǐng)你在本課第一個(gè)例程的基礎(chǔ)上,增加一個(gè)包含有“紅色”、“綠色”、“藍(lán)色”的顏色主菜單。并設(shè)計(jì)它們的事件程序,當(dāng)單擊其中一個(gè)菜單命令時(shí),程序能改變文本框中文字的顏色。
更多建議: