VB实现系统托盘的疑问

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:28:33
Option Explicit

Private Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Long
uFlags As Long
ucallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_RBUTTONUP = &H205
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIF_MESSAGE = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_MOUSEMOVE = &H200

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long<

这个代码没什么大问题,点击也能显示窗体,不过为了慎重起见,把frm代码也发出来吧

另外,代码中用到Message1 = X / Screen.TwipsPerPixelX,则要保证窗体的ScaleMode必须为Twips,即设置为1

代码在我这里测试通过,直接复制代码在窗体里运行,托盘功能一切正常

你这是难倒我,这我好久都没用了,最近是想学,但我当时学的是C语言。