退出程序时,托盘还在,鼠标移上去才消失。怎么解决

vbgood2008 2008-04-12 02:40:40
退出程序时,托盘还在,鼠标移上去才消失。怎么样才可以一退出。托盘也马上退出。
怎么解决。我用了以下代码还是不行。请高手帮忙。
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
OsName As String
End Type
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const WM_MOUSEMOVE = &H200






Private Function GetSysTrayWnd() As Long

Dim Result As Long
Dim Ver As OSVERSIONINFO
Ver.dwOSVersionInfoSize = 148
GetVersionEx Ver

Result = FindWindow("Shell_TrayWnd", vbNullString)
Result = FindWindowEx(Result, 0, "TrayNotifyWnd", vbNullString)
If Ver.dwMajorVersion = 5 And Ver.dwMinorVersion > 0 Then Result = FindWindowEx(Result, 0, "SysPager", vbNullString)
If Ver.dwMajorVersion = 5 Then Result = FindWindowEx(Result, 0, "ToolbarWindow32", vbNullString)
GetSysTrayWnd = Result
End Function

Private Sub RefreshTrayIcon()



Dim hwndTrayToolBar As Long
Dim X, Y As Long
Dim rTrayToolBar As RECT
Dim pos As Long
hwndTrayToolBar = GetSysTrayWnd

GetClientRect hwndTrayToolBar, rTrayToolBar

For X = 1 To rTrayToolBar.Right - 1
For Y = 1 To rTrayToolBar.Bottom - 1
pos = (X And &HFFFF) + (Y And &HFFFF) * &H10000

PostMessage hwndTrayToolBar, WM_MOUSEMOVE, 0, pos

Next
Next
End Sub

Private Sub Command1_Click()
RefreshTrayIcon
End Sub

Private Sub Form_Load()

End Sub
...全文
251 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbgood2008 2008-04-12
  • 打赏
  • 举报
回复
楼上的。cuizm 谢谢了。可帮我大忙了。哈。
射天狼 2008-04-12
  • 打赏
  • 举报
回复
是你程序的问题。
http://www.j2soft.cn/static_html/200511092136103255admin.html

看看这个源码
MatrixKnight 2008-04-12
  • 打赏
  • 举报
回复
这个好像不是你的代码问题, 而是操作系统或自行环境的问题.
系统windows上的托盘在程序退出后,图标依然残留, 我的C++程序也遇到这种情况.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧