在VB中动态添加弹出菜单
来源:互联网 发布:linux异常关机日志 编辑:程序博客网 时间:2024/05/17 07:53
'Code By 魑魅魍魉
'mailto:DemonStudio@hotmail.com
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112
Const MF_CHECKED = &H8&
Const MF_APPEND = &H100&
Const TPM_LEFTALIGN = &H0&
Const TPM_RETURNCMD = &H100
Const MF_DISABLED = &H2&
Const MF_GRAYED = &H1&
Const MF_SEPARATOR = &H800&
Const MF_STRING = &H0&
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Any) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function CreateMenu Lib "user32" () As Long
Dim hMenu, sMenu As Long
Private Sub Form_Load()
hMenu = CreatePopupMenu()
AppendMenu hMenu, MF_STRING, 1, "111111"
AppendMenu hMenu, MF_STRING, 2, "211111"
AppendMenu hMenu, MF_STRING, 3, "311111"
AppendMenu hMenu, MF_STRING, 4, "411111"
sMenu = GetSystemMenu(Me.hwnd, False)
AppendMenu sMenu, MF_STRING, 99, "About"
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim aaa As Long
Dim Pt As POINTAPI
GetCursorPos Pt
If Button = 2 Then
aaa = TrackPopupMenu(sMenu, TPM_LEFTALIGN Or &H100, Pt.x, Pt.y, 0, Me.hwnd, ByVal 0&)
Me.Caption = aaa
If aaa = 99 Then
'
MsgBox "Demon!"
Else
'
SendMessage Me.hwnd, WM_SYSCOMMAND, aaa, 0&
End If
Else
Me.Caption = TrackPopupMenu(hMenu, TPM_LEFTALIGN Or &H100, Pt.x, Pt.y, 0, Me.hwnd, ByVal 0&)
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyMenu hMenu
DestroyMenu sMenu
End Sub
效果如下:
- 在VB中动态添加弹出菜单
- VC 弹出菜单 动态添加二级菜单
- Unity3D Editor在右键弹出菜单中添加 item
- VB 2005 Toolstrip动态添加菜单
- vc动态添加弹出菜单和响应函数
- vc动态添加弹出菜单和响应函数
- 如何在MFC中动态添加菜单/菜单项、子菜单、右键菜单
- 在VB中动态添加可响应消息的控件
- 在VB中动态添加可响应消息的控件
- 如何用vb在IE菜单中的右击菜单中添加一项能
- VB.Net程序设计:动态添加右键菜单和子菜单
- 在vs2010+MFC中动态添加菜单选项
- 在vs2010+MFC中动态添加菜单选项
- 在VS中动态添加,删除菜单项
- 在Winform中菜单动态添加“最近使用文件”
- vb 右键弹出菜单
- Delphi 菜单的应用(系统菜单添加一项、主菜单增加历史记录、弹出菜单的动态合并、菜单中画图、显示状态)
- vb修改注册表——在IE 中添加右击菜单的一项功能
- 百度贴吧...别人的日记.
- 更改标准消息框按钮、文字的简单方法
- 我的签花
- 读 Access mdb 文件 DataSet 和 DataGrid 显示
- 在VB中制作VC中具有PUSHLIKE风格的复选框
- 在VB中动态添加弹出菜单
- Struts的心酸往事
- SetMenu的简单示例
- 随机数
- 智能客户端(SmartClient)
- CSDN上的解决问题贴
- Visual Studio .Net团队开发
- 视频采集类
- Maxthon正式版试用手记(正式版发布在即)