我做了个程序·带有托盘事件!可右键菜单有时候弹不出来!
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMsg As Single
lMsg = X / Screen.TwipsPerPixelX
If lMsg = WM_LBUTTONUP Then
Me.WindowState = 0
Me.Show
Else
If lMsg = WM_RBUTTONUP Then
PopupMenu Traymenu
End If
End If
End Sub
这个代码·为什么我有时候点任务拦关闭的时候,再点托盘右键,托盘菜单就不弹出了啊?大家看看代码有没问题!
问题有可能不在这段代码上而是在PopupMenu Traymenu上。
PopupMenu Traymenu可能已经执行了,但是也许是位置或者大小的设置没注意维护好,弹出了屏幕有效范围之外或者大小为0,这样你就看不到而误以为没有执行。
我没在VB上出现过这种事情,是在VC程序上犯过这种错误。
为了验证这一点,你可以在PopupMenu Traymenu的前或者后加一个beep来试一下,如果每次都能听到“叮”一声,那你就改好好看看PopupMenu Traymenu是怎么回事了。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMsg As Single
lMsg = X / Screen.TwipsPerPixelX
If lMsg = WM_LBUTTONUP Then
Me.WindowState = 0
Me.Show
ElseIf lMsg = WM_RBUTTONUP Then
PopupMenu Traymenu
End If
End Sub
'
'试一下,不行的话吧 鼠标弹起事件换成按下事件
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_LBUTTONDOWN = &H201