国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB 用API創(chuàng)建動態(tài)菜單示例(含子菜單且能響應(yīng)事件)
1.模塊代碼如下:
注意:因為有用到AddressOf OnMenu,函數(shù)OnMenu只能放在模塊部分。
Public Const MF_POPUP = &H10&
Public Const MF_STRING = &H0&
Public Const MF_DISABLED = &H2&
Public Const MF_SEPARATOR = &H800&
Public Const MF_CHECKED = &H8&
Public Const MF_GRAYED = &H1&
Public Const MF_BYCOMMAND = &H0&
Public Const GWL_WNDPROC = (-4)
Public Const WM_COMMAND = &H111
Public Declare Function CreateMenu Lib "user32" () As Long
Public Declare Function
GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function
GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function
GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function
CreatePopupMenu Lib "user32" () As Long
Public Declare Function
AppendMenu1 Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
Public Declare Function
SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Public Declare Function
DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function
SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function
CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public
MenuCount As Long '菜單數(shù)量,不包括不能觸發(fā)的菜單
Public MenuText() As String '菜單文本,ID=wParam的菜單的文本為MenuText(wParam - 1000)
Public OldWinProc As Long

Public Function
OnMenu(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'{響應(yīng)菜單事件}
Select Case wMsg
Case WM_COMMAND
If wParam > 1000 And wParam <= 1000 + MenuCount Then
MsgBox MenuText(wParam - 1000)
End If
End Select
OnMenu = CallWindowProc(OldWinProc, hwnd, wMsg, wParam, lParam)
End Function

2.Form1代碼如下:
設(shè)計窗體的Negotiation=False,以防止彈出對話框或響應(yīng)OnMenu后窗體上的菜單消失
Private Sub Form_Load()
Call CreateActiveMenu
End Sub

Sub
CreateActiveMenu()
Dim hMenu As Long, hSubMenu As Long
Dim
hPopMenuTmp As Long
ReDim
MenuText(0)

hMenu = GetMenu(Me.hwnd)
'窗體級菜單句柄
If hMenu = 0 Then
'窗體上沒有菜單時,創(chuàng)建菜單。這種情況下需在設(shè)計階段設(shè)置窗體的NegotiatMenu=False菜單才能顯示出來。
hMenu = CreateMenu()
End If

'添加到0級菜單
hSubMenu = hMenu
FullAllSubMenu hSubMenu

'添加到1級菜單
hSubMenu = GetSubMenu(hSubMenu, GetMenuItemCount(hSubMenu) - 1) '獲取最后一個0級菜單的句柄
FullAllSubMenu hSubMenu

'添加到2級菜單
hSubMenu = GetSubMenu(hSubMenu, GetMenuItemCount(hSubMenu) - 1)
FullAllSubMenu hSubMenu

'添加到3級菜單
hSubMenu = GetSubMenu(hSubMenu, GetMenuItemCount(hSubMenu) - 1)
FullAllSubMenu hSubMenu

SetMenu Me.hwnd, hMenu
DrawMenuBar Me.hwnd
Me.Refresh

OldWinProc = SetWindowLong(Me.hwnd, GWL_WNDPROC,
AddressOf OnMenu)
End Sub

Sub
FullAllSubMenu(hFather As Long)
'加入全部子菜單
Dim hPopMenuTmp As Long
Dim
i As Integer
hPopMenuTmp = CreatePopupMenu()
For i = 0 To 4
MenuCount = MenuCount + 1
'保存菜單文本,用于菜單事件觸發(fā)時識別出被選擇的菜單對象
ReDim Preserve MenuText(MenuCount)
MenuText(MenuCount) =
"文件" & MenuCount
'加入子菜單,令其ID>1000,說明其為自動生成的菜單
AppendMenu1 hPopMenuTmp, MF_STRING, 1000 + MenuCount, MenuText(MenuCount)
'如果是間隔線,則wFlags=MF_SEPARATOR
'如果要Check,則wFlags=MF_STRING + MF_CHECKED,若令不可用,則再加MF_GRAYED
Next
AppendMenu1 hFather, MF_POPUP, hPopMenuTmp, "&Files"
End Sub
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
vb教程之在系統(tǒng)菜單上添加自定義菜單項
在菜單中加入圖標(biāo)
VC API之菜單函數(shù)
如何取消窗體的關(guān)閉按鈕
VB 去掉窗口上的關(guān)閉按鈕
用VB來模擬一次菜單操作(其他應(yīng)用程序)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服