哈哈!!
你的错误是:在
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
还是不能调用,我把源程序附上。这个程序是把一个
应用程序最小化到右下角的系统托盘区。
这是在FORM1中:
Option Explicit
Private Sub Form_Load()
With Me
.Top = -10000
.Left = -10000
.WindowState = vbMinimized
End With
With nidProgramData
.cbSize = Len(nidProgramData)
.hwnd = Me.hwnd
.uid = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon
.szTip = "xzm" & vbNullChar
End With
Shell_NotifyIconA NIM_ADD, nidProgramData
“用这个就出现函数未定义错误,如果用
Shell_NotifyIcon NIM_ADD,nidProgramData
的话,就出现找不到dll入口错”
End Sub
还有一些不关紧要的没写。
这是在标准模块中:
Option Explicit
Public Const WM_MOUSEISMOVING = &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 = &H206
Public Const WM_SETHOTKEY = &H32
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public 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
Public Enum enm_NIM_Shell
NIM_ADD = &H0
NIM_MODIFY = &H1
NIM_DELETE = &H2
NIF_MESSAGE = &H1
NIF_ICON = &H2
NIF_TIP = &H4
WM_MOUSEMOVE = &H200
“这些参数我都不知道事什么意思,不知哪儿有这些资料,请各位大虾
指点小弟一下”
End Enum
Public nidProgramData As NOTIFYICONDATA
你可以在模块里定义。
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'模块代码:
Type NOTIFYICONDATA 'lpData参数是一个结构类型。
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
。。。。。。。。。。。。。略