Option ExplicitPrivate Const IDI_APPLICATION = 32512&Private Const WM_USER = &H400Private Const NIF_ICON = &H2Private Const NIF_MESSAGE = &H1Private Const NIF_TIP = &H4Private Const NIM_ADD = &H0Private Const ICON_ID = 1Private Const MI_ICONEVENT = WM_USER + 1
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 TypePrivate Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Dim MyIcon As NOTIFYICONDATAPrivate Sub Form_Load()
MyIcon.hwnd = Form1.hwnd
MyIcon.uCallbackMessage = MI_ICONEVENT
MyIcon.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
MyIcon.uID = ICON_ID
MyIcon.hIcon = LoadIcon(0, IDI_APPLICATION)
Shell_NotifyIcon NIM_ADD, MyIcon
End Sub运行时总是提示我“找不到Shell_NotifyIconA在‘shell32.dll‘中的入口”
请修改源代码。
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 TypePrivate Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Dim MyIcon As NOTIFYICONDATAPrivate Sub Form_Load()
MyIcon.hwnd = Form1.hwnd
MyIcon.uCallbackMessage = MI_ICONEVENT
MyIcon.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
MyIcon.uID = ICON_ID
MyIcon.hIcon = LoadIcon(0, IDI_APPLICATION)
Shell_NotifyIcon NIM_ADD, MyIcon
End Sub运行时总是提示我“找不到Shell_NotifyIconA在‘shell32.dll‘中的入口”
请修改源代码。
98中可能没有该函数
Shell_NotifyIconA前面有个空格,去掉就OK了
这是微软的一个bug.