请教一下如何制作托盘图标上的右键菜单?
解决方案 »
- 如何来得知TEXT里的是数字
- 有谁用过EDI的请进?
- VB中提交了数据以后,怎样得到回显的东西?进来详细.:)
- 在线等待:怎样使VB6的代码编辑器支持鼠标滚动键?
- 求助,DataReport的问题
- 在SQL中,怎样将text转换为number格式啊?
- 怎样使用一个程序在屏幕的最上面当鼠标离开时它就不显示 碰它时就显示
- OLEAUT32.DLL 2.40.4518 / OlePro32.dll 5.0.4518 的版本和安装问题?
- 怎么写删除目录的函数
- 怎样成为vb高手???
- 一个小问题
- 高手帮忙,请问VB如何修复access 97 或者access 2000或更高版本的数据库,压缩数据库又怎样处理?
对Form添加菜单。
在加载的时候,只Load这个Form,而不Show。
在Form的MouseDown或Mousemove事件写下弹出菜单。eg:
'moudel1
Option ExplicitPublic Const MAX_TOOLTIP As Integer = 64
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206Public Const SW_RESTORE = 9
Public Const SW_HIDE = 0Public nfIconData As NOTIFYICONDATA
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * MAX_TOOLTIP
End TypePublic Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As LongSub main()
Load frmMenu
End Sub'窗体的事件,假设窗体上已经有一个Menu:mnuMain
Private Sub Form_Load()
'以下把程序放入System Tray====================================System Tray Begin
With nfIconData
.hwnd = Me.hwnd
.uID = Me.Icon
.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon.Handle
'定义鼠标移动到托盘上时显示的Tip
.szTip = App.Title + "(版本 " & App.Major & "." & App.Minor & "." & App.Revision & ")" & vbNullChar
.cbSize = Len(nfIconData)
End With
Call Shell_NotifyIcon(NIM_ADD, nfIconData) '=============================================================System Tray End
Me.Hide
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' 单击鼠标右建弹出菜单
If Button = vbRightButton Then
PopupMenu mnuMain
End If
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mnuMain
End If
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' 释放资源, 卸载窗体
Dim frm As Form
For Each frm In Forms
Unload frm
Next
Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
End Sub
或:http://www.fzx.name/article/63.htm