當前位置:編程學習大全網 - 編程語言 - 首頁 - 經驗之談 - 在VB6.0中實現彈出式菜單的幾種方法

首頁 - 經驗之談 - 在VB6.0中實現彈出式菜單的幾種方法

---- PopupMenu方法(Method)是VB6.0內置的實現彈出式菜單的方法,用於在MDIForm或Form等對象中的鼠標點位置或指定位置顯示彈出式菜單。其語法為:

Object.PopupMenu menuname,

flags, x, y, boldcommand

---- 說明如下:

---- Object 可選項,可以是PropertyPage, Usercontrol, UserDocument, Form, MDIForm等對象之壹,如果該部分省略,則具有焦點(Focus)的Form對象將作為此Object。

---- 通過設置對象(Object)的Scalemode屬性來規定X,Y坐標的度量單位,X,Y坐標設定彈出式菜單在對象(Object)中顯示的相對位置,如果省略X,Y,則彈出式菜單將顯示在當前鼠標點位置。

---- 當用PopupMenu方法激活彈出菜單後,要等到用戶選擇了彈出菜單中的某個菜單項之後(這種情況下,還要先運行被選擇菜單項的相應代碼)或在表單其它位置單擊鼠標左鍵消除彈出菜單後,後面的代碼才能繼續執行。並且,壹次只能激活壹個彈出式菜單,當已經有壹個彈處菜單被激活或已經有壹個下拉菜單被打開時,對PopupMenu方法的調用將被忽略。

---- 下面的例子演示當用戶在表單上點擊鼠標右鍵時,在鼠標點處顯示彈出式菜單。欲試驗此例子,建立壹個表單,在表單中建立壹個菜單控件,將其命名為mnuFile(mnuFile菜單至少包含壹個子菜單)。在表單的聲明(Declaration)區域加入如下代碼:

Private Sub Form_MouseDown

(Button As Integer, Shift As Integer,

X As Single, Y As Single)

If Button = vbRightButton Then

PopupMenu mnuFileEnd IfEnd Sub---- PopupMenu方法是VB6.0內置的方法,使用起來方便簡單,但該方法有壹個不足,即當點擊鼠標彈出菜單後,如果不選擇菜單項而在其他位置點擊鼠標,則菜單並不會在新的鼠標點處顯示。這雖然不至於影響應用程序的功能,但卻降低了易用性。

二. 利用Windows API函數

---- 除了利用VB6.0內置的PopupMenu方法來實現彈出式菜單外,還可以利用Windows 的應用程序接口(API)函數中的菜單函數來實現彈出式菜單。

---- 利用API的菜單函數實現彈出式菜單與VB6.0內置的PopupMenu方法相比,要復雜壹些,但卻彌補了PopupMenu方法的不足點,即當彈出菜單後不選擇菜單項而在其它位置點擊鼠標時,彈出式菜單會立即出現在那個位置。並且利用API函數,編程者可以更加靈活、自由度更大地實現彈出式菜單。

---- 本文用到的API函數為:GetMenu, GetSubMenu, GetMenuItemInfo, InsertMenuItem, CreatePopupMenu, DestroyMenu, TrackPopupMenu。下面先簡單介紹壹下這幾個函數。

三、 利用工程(Project)中其他表單的菜單作為當前表單的彈出菜單

---- 如果表單(Form)的菜單中不包含彈出菜單需要的菜單項,那麽可以新建壹個表單,在新表單中建立壹個與所需彈出菜單完全壹樣的菜單及相應代碼。然後在MouseDown事件中利用GetMenu和GetSubMenu函數來獲得新表單中的菜單句柄,再利用TrackPopupMenu函數激活彈出式菜單。

---- 下面的例子演示當在表單中單擊鼠標右鍵時,在鼠標點位置顯示彈出式菜單,此彈出式菜單是通過調用另外壹個表單中的菜單得到的。要試驗這個例子,需要創建兩個表單,壹個命名為Form1,另壹個命名為MnuForm。在MnuForm中加入壹個菜單控件,將其命名為MnuFile(MnuFile中至少要包含壹個子菜單)。添加壹個模塊(Module),在模塊的聲明(Declaration)區域添加如下代碼:

---- 在Form1的聲明(Declaration)區域添加如下代碼:

四、 利用表單中的菜單項實現彈出式菜單

---- 如果表單的菜單中包含了彈出菜單所需的菜單項,那麽可以通過CreatePopupMenu函數生成壹個空的pop-up menu,然後利用GetMenuItemInfo函數從表單的菜單中獲得相應菜單項的內容,再用InsertMenuItem函數將菜單項加入到pop-up menu中,最後使用TrackPopupMenu函數激活彈出式菜單。

---- 下面的例子演示當在表單中單擊鼠標右鍵時,在鼠標點位置顯示彈出式菜單,此彈出式菜單是通過調用表單中的若幹菜單項得到的。要試驗這個例子,需要創建壹個表單。

  • 上一篇:新能源其中三項前沿技術
  • 下一篇:現在最受歡迎的職業是什麽?
  • copyright 2024編程學習大全網