規(guī)范設(shè)計(jì)Windows應(yīng)用軟件菜單
發(fā)表時(shí)間:2024-02-25 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]在開發(fā)軟件的菜單界面時(shí),能按Windows所設(shè)定的規(guī)范進(jìn)行,不僅能使所開發(fā)出的應(yīng)用軟件的菜單界面更美觀豐富,而且能與Windows中各軟件協(xié)調(diào)一致,使大量熟悉Windows操作的用戶,一看菜單,就能根據(jù)平時(shí)的使用經(jīng)驗(yàn),觸類旁通地知曉該應(yīng)用軟件的各功能和簡(jiǎn)捷的操作方法,增強(qiáng)軟件的靈活性和可操作性。 ...
在開發(fā)軟件的菜單界面時(shí),能按Windows所設(shè)定的規(guī)范進(jìn)行,不僅能使所開發(fā)出的應(yīng)用軟件的菜單界面更美觀豐富,而且能與Windows中各軟件協(xié)調(diào)一致,使大量熟悉Windows操作的用戶,一看菜單,就能根據(jù)平時(shí)的使用經(jīng)驗(yàn),觸類旁通地知曉該應(yīng)用軟件的各功能和簡(jiǎn)捷的操作方法,增強(qiáng)軟件的靈活性和可操作性。
以下以VB5.0的工具菜單欄(Tools)中的“菜單編輯器”和一個(gè)“學(xué)生檔案管理軟件”(主要有“文件”、“系統(tǒng)初始化” 、“年級(jí)”、“輸入與查詢”等菜單,分別完成報(bào)表打印、新建年級(jí)庫(kù)、選年級(jí)、以及數(shù)據(jù)庫(kù)數(shù)據(jù)的輸入與查詢等)為例,說(shuō)明Windows應(yīng)用軟件菜單設(shè)計(jì)的一些規(guī)則:
一、暫時(shí)不可操作的菜單命令項(xiàng)一般要屏蔽變灰
Windows菜單中有一些菜單項(xiàng)是以變灰的形式出現(xiàn)的,并用虛線字符來(lái)顯示,這一類的命令表示當(dāng)前不可用,也就是說(shuō),執(zhí)行此命令的條件當(dāng)前還不具備。例如,在學(xué)生檔案管理軟件中,初始的“輸入與查詢”菜單為灰,因?yàn)樵跊](méi)有選中“年級(jí)”的情況下,系統(tǒng)將不知要查詢哪個(gè)年級(jí)的學(xué)生資料。在圖1中設(shè)計(jì)時(shí),點(diǎn)擊“輸入與查詢”菜單條的“有效(E)”屬性,改變其默認(rèn)的“有效”為“無(wú)效”,然后設(shè)計(jì)在“年級(jí)”菜單中各年級(jí)的Click事件中傳遞所選中的年級(jí)信息給“輸入與查詢”模塊后改變后者的“有效”屬性值,讓其可操作:
Private Sub mnu98dz_Click()
Transfer = "c:\dagl\98dz.mdb"
mnuFind.Enabled = True
End Sub
二、正在起作用的菜單命令旁打上選中標(biāo)記(√)
Windows中有一些命令是觸發(fā)式的,打勾號(hào)表明該命令正在起作用,否則表明不起作用,可通過(guò)點(diǎn)擊,反復(fù)切換。例如,在上述所舉的學(xué)生檔案管理軟件中,當(dāng)選擇了某一年級(jí)時(shí),系統(tǒng)就在對(duì)應(yīng)年級(jí)菜單前打上“√”,表明正在操作的是此年級(jí)的數(shù)據(jù)庫(kù)。要做到這一點(diǎn),只要把菜單編輯器中相應(yīng)菜單條的“復(fù)選(C)"框選中即可,然后在菜單的驅(qū)動(dòng)事件加入如下語(yǔ)句來(lái)切換該屬性:mnu98dz.Checked=not mnu98dz.Checked
三、為命令選項(xiàng)設(shè)置訪問(wèn)鍵(Access key)
菜單項(xiàng)中帶有下劃線的字母,稱為該命令的訪問(wèn)鍵,是為了方便使用鍵盤的用戶而設(shè)置的,按Alt鍵和該字母時(shí)即可打開該菜單,增加訪問(wèn)鍵只要在菜單編輯器的“標(biāo)題(P)”框中,在要讓其成為訪問(wèn)鍵的字母前加“&”即可,當(dāng)然,訪問(wèn)鍵最好不要重復(fù),否則系統(tǒng)只認(rèn)定第一個(gè)有效。
四、為命令選項(xiàng)增加快捷鍵(Shortcut Key)
某些菜單命令的右邊有一組合鍵,稱為該命令的快捷鍵,可以不打開菜單而直接按快捷鍵來(lái)選擇執(zhí)行此命令。為一個(gè)命令項(xiàng)增加一個(gè)快捷鍵,可在菜單編輯器中的“快捷鍵(S)”列表框中為該命令項(xiàng)分配一個(gè),列表中一個(gè)快捷鍵只能被分配一次,否則系統(tǒng)會(huì)拒絕接受。
五、在要彈出對(duì)話框的命令選項(xiàng)后增加省略號(hào)(...)提示用戶
Windows中,如果命令項(xiàng)后面有省略號(hào)(...),表明選擇此命令將引出一個(gè)對(duì)話框,從對(duì)話框系統(tǒng)要求用戶提供更多執(zhí)行該命令所需的信息,在設(shè)計(jì)時(shí)只要在會(huì)引出對(duì)話框的菜單項(xiàng)的標(biāo)題后增加“(...)"提示即可。
六、用右指向的箭頭(→),來(lái)指引用戶選擇此項(xiàng)將引出級(jí)聯(lián)菜單(Cascading Menu)
級(jí)聯(lián)菜單即所謂的子菜單,在VB中箭頭由系統(tǒng)根據(jù)菜單編輯器中設(shè)計(jì)菜單大綱時(shí)所安排的“縮進(jìn)”度而自動(dòng)實(shí)現(xiàn)的,因此,關(guān)鍵是在設(shè)計(jì)菜單時(shí)合理安排大綱中各菜單項(xiàng)上下級(jí)的邏輯關(guān)系,在VB中最多可以有四級(jí)子菜單。
七、對(duì)相關(guān)的命令用分隔條(Separate Bar)進(jìn)行分組
為了讓用戶迅速地在菜單中找到他要執(zhí)行的命令項(xiàng),有必要對(duì)菜單中相關(guān)的一組命令用分隔條進(jìn)行分組,如文件菜單中,把有關(guān)打印輸出的一組命令:“頁(yè)面設(shè)置”、“打印預(yù)覽”、“打印”等用分隔條醒目地進(jìn)行分隔。這只要在需要進(jìn)行分組的命令之間插入一個(gè)特殊的命令條,該命令條的“標(biāo)題”為“-”,而“名稱”任意,因?yàn)樵诔绦蛑幸话悴粫?huì)引用此命令的名稱。
八、建立動(dòng)態(tài)菜單,提高軟件的靈活性
動(dòng)態(tài)菜單即運(yùn)行時(shí)會(huì)伸縮的菜單,Windows中有許多軟件的“文件”菜單中都具有記憶最近操作過(guò)的幾個(gè)文檔名的功能,在本文所舉例的學(xué)生檔案管理軟件中,因?yàn)槊磕甓紩?huì)有新的學(xué)生到校,在形成新的年級(jí)時(shí),要在“年級(jí)”菜單中動(dòng)態(tài)地增加新的年級(jí)名稱以供選擇和查詢,這首先要在設(shè)計(jì)時(shí)生成菜單命令的控件數(shù)組(Menu Control Array),在菜單的編輯器中加入一個(gè)菜單選項(xiàng),設(shè)其Index屬性設(shè)置為0,然后可以加入名稱相同(在本例中名稱為MnuNj),Index值相鄰遞增的菜單選項(xiàng)(比如加入10個(gè)),設(shè)計(jì)時(shí)讓它們標(biāo)題框均為空,留作日后引用填入新年級(jí)名,并設(shè)這些備用菜單條的“可見(jiàn)”屬性為無(wú)效,即目前不可見(jiàn)。在有建立和刪年級(jí)庫(kù)功能的“系統(tǒng)初始化”菜單驅(qū)動(dòng)事件中引用這個(gè)數(shù)組名和索引值在“輸入與查詢”中動(dòng)態(tài)地加進(jìn)新的年級(jí)名選項(xiàng),并讓其可見(jiàn)或不可見(jiàn)(在刪除時(shí)):
Private AddMenu_Click()
Counter=counter+1
Nj=Nj+1 ’Nj是一個(gè)模塊級(jí)變量,初值為1998
MnuNj(counter).Caption= Nj & "年級(jí)"
MnuNj(counter).Visible=Ture
End Sub
Windows中許多應(yīng)用程序的“文件"菜單記住最近使使過(guò)的文件名的實(shí)際方法與此類似。
九、生成彈出式菜單,增強(qiáng)軟件的可操作性
有時(shí)為了方便用戶需要,為一些最常用的命令建立右鍵彈出式快捷菜單,這種菜單的前期設(shè)計(jì)和普通菜單一樣,不同的是一般要先點(diǎn)擊“可見(jiàn)(P)”框,讓此菜單不可見(jiàn),然后在窗體的MouseDown或MouseUp事件中引用PopupMenu方法來(lái)實(shí)現(xiàn)在窗體上按下鼠標(biāo)右鍵時(shí)彈出此菜單:
Private Sub MdiForm1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If button=2 the ’MnuEdit為制作的要彈出的菜單
Popupmenu MnuEdit
End Sub
PopupMenu方法將忽略初始設(shè)置的“不可見(jiàn)”屬性。
使用Windows下的其他軟件開發(fā)工具設(shè)計(jì)菜單時(shí),情形與之類似。