2011年度計(jì)算機(jī)等級(jí)考試二級(jí)VB基礎(chǔ)教程(8)

字號(hào):

2011年度計(jì)算機(jī)等級(jí)考試二級(jí)VB基礎(chǔ)教程(8)

    2.4 定制菜單
    1.菜單概述
    Windows中的菜單一般由菜單條、菜單、菜單項(xiàng)、子菜單、彈出式菜單組成。
    2.普通菜單的設(shè)計(jì)
    (1)給菜單命名
    菜單標(biāo)題和菜單命令也有Caption和Name屬性,設(shè)置了這兩個(gè)屬性就等于創(chuàng)建了菜單。Name是一個(gè)抽象名稱,Caption是屏幕上可見的,可在Caption里加入 “&” 來設(shè)置熱鍵。
    (2)增加和刪除菜單
    在Menu Editor中部有三個(gè)命令鈕分別是下一個(gè)、插入、刪除。插入可用來增加新的菜單。在這三個(gè)鍵下面的Caption列表框里選中菜單項(xiàng)(這時(shí)它的底色就變成深藍(lán)色),單擊插入鍵,Visual Basic將上一個(gè)增亮菜單下推并增亮一空行,就可以輸入新菜單名和標(biāo)題了。刪除鍵可用來刪掉菜單。選中要?jiǎng)h掉的菜單,單擊Delete鍵就可以刪掉它了。
    (3)移動(dòng)菜單標(biāo)題
    有四種情況:向上移動(dòng),向下移動(dòng),向左縮排,向右縮排,選中某一菜單標(biāo)題,安上下箭頭,則這個(gè)菜單將上下移動(dòng)到你喜歡的位置上,這也決定了它在界面中的位置。如果按左右箭頭,情況則有所不同。由于菜單是分級(jí)的,所以,如果它沒有縮排,則它是一個(gè)菜單標(biāo)題;如果它縮排一次,那么它將變成一個(gè)菜單命令;如果縮排兩次,那么它將成為一個(gè)子菜單命令。VB里可以總共設(shè)計(jì)四層子菜單。
    (4)設(shè)置分離條
    分離條是指在菜單中將命令分組的線,VB將分離條也看成一個(gè)菜單項(xiàng),它也需要Caption和Name屬性,而且也有其它屬性,分離條與菜單項(xiàng)的區(qū)別是分離條的Caption屬性必須是連字號(hào)即減號(hào)。也就是,當(dāng)設(shè)置了一個(gè)Caption屬性為 “-” 的菜單項(xiàng)時(shí),實(shí)際上就設(shè)置了一個(gè)分離條,分離條的名字可以是barFile1之類,以表明分離條的位置。
    (5) 菜單的各種簡(jiǎn)單屬性
    在菜單編輯器里有許多確認(rèn)框和一些文本框及一個(gè)下拉式的列表框,這些決定了菜單的各種屬性。
    1) Checked 復(fù)選屬性
    這個(gè)屬性值設(shè)置為真,將在菜單命令左邊產(chǎn)生一個(gè)打勾的確認(rèn)標(biāo)志。
    2) Enabled有效屬性
    各種各樣的用戶會(huì)產(chǎn)生千奇百怪的操作,在許多Edit菜單里都會(huì)有不同形式的讓菜單命令模糊的情況。Enabled屬性為真,則菜單命令是清晰的,Enabled屬性為假,則菜單命令是模糊的,這時(shí)用戶就不能選中這個(gè)菜單項(xiàng)了。
    3) Visible 可見屬性
    對(duì)暫時(shí)不用的菜單, 如果把Visible屬性設(shè)為假,則菜單根本不會(huì)出現(xiàn)在屏幕上。這樣做比把Enabled屬性設(shè)為假顯得更加干脆!
    4) Index屬性
    可以生成菜單命令數(shù)組,用索引號(hào)區(qū)分開。例如向File菜單中添加一系列最近打開的文件名。添加菜單可用Load方法。以上屬性可以在運(yùn)行時(shí)設(shè)置,形成動(dòng)態(tài)的菜單的情況。
    例如:
    mnuUndo.Enabled = False
    mnuProperty.Visible = False
    還可以改變Caption等屬性。
    mnuUndo.Caption = “Redo”
    3. 生成彈出式菜單(或浮動(dòng)菜單)
    幾乎每個(gè)Windows應(yīng)用程序都提供彈出式菜單,用戶可以右鍵單擊窗體或控件取得這個(gè)菜單。彈出式菜單也屬于普通菜單,只是不固定在窗體上,而是可以在任何地方顯示。
    彈出式菜單用PopupMenu方法調(diào)用。假設(shè)已經(jīng)用菜單編輯器生成了名為mnuedit的菜單,則可以在MouseUp事件加入如下代碼就可以生成彈出式菜單:
    If Button = 2 Then PopupMenu mnuedit