VB5制作上下文菜單
發表于:2007-07-14來源:作者:點擊數:
標簽:
在Win 95中,我們常常通過單擊鼠標右鍵來激活一個快捷菜單,從而加快了操作。此處所說的快捷菜單就是上下文菜單。上下文菜單在VB5中又稱作彈出式菜單,它是獨立于菜單欄而顯示在窗體上的浮動菜單。在彈出式菜單上顯示的項目取決于按下鼠標右鍵時指針
在Win 95中,我們常常通過單擊鼠標右鍵來激活一個快捷菜單,從而加快了操作。此處所說的快捷菜單就是上下文菜單。上下文菜單在VB5中又稱作彈出式菜單,它是獨立于菜單欄而顯示在窗體上的浮動菜單。在彈出式菜單上顯示的項目取決于按下鼠標右鍵時指針所處的位置。?
為了顯示彈出式菜單,可使用PopupMenu 方法。這個方法使用下列語法:
[object .]PopupMenu menuname [,flags [,x [,y [,boldcommand]]]]。?
例如:當用鼠標右鍵單擊一個窗體時,以下的代碼顯示一個名為mnuFile 的菜單??捎茫停铮酰螅澹眨?或者MouseDown 事件來檢測何時單擊了鼠標右鍵:?Private Sub Form_MouseUp (Button As Integer ,Shift As _?Integer ,XAs Single ,Y As Single)?If Button =2Then '檢查是否單擊了鼠標右鍵?PopupMenu mnuFile '把文件菜單顯示為一個彈出式菜單?End If?End Sub?
直到菜單中被選取一項或者點擊窗體取消這個菜單時,調用Pop—upMenu 方法后面的代碼才會運行。注意每次只能顯示一個彈出式菜單。在已顯示一個彈出式菜單的情況下,對后面的調用PopupMenu 方法將不予理睬。在一個菜單控件正活動的任何時刻,調用PopupMenu方法均不會被理睬。?
我們常常會用一個彈出式菜單來訪問那些在菜單欄中不常用的選項。為創建一個不顯示在菜單欄里的菜單,可在設計時使頂級菜單項目為不可見(保證在菜單編輯器里的“Visible”復選框沒有被選上)。當Visual Basic 顯示一個彈出式菜單時,指定的頂級菜單的Visible 屬性會被忽略。?
可是現在我們做一下,會發現這與Win 95的上下文菜單還是有些不同,當顯示了一個上下文菜單時,如果不選取一項,而在別的地方單擊鼠標右鍵,就會沒有任何反應。怎么辦呢,我們通過以下過程解決:?Private Sub Form_MouseDown(Button As Integer ,Shift As Integer ,_?XAs Single ,Y As Single)?SendKeys "{ESC}"?End Sub?
再試一下,看是不是和Win 95的一樣了。記住,要想做一個好的軟件,沒有上下文菜單可是不行的。?(山東省濟寧市公路設計院李飚272113)
原文轉自:http://www.anti-gravitydesign.com