在托盘上显示Balloon Tooltip(VB.NET)

使用VB编写在托盘上显示Balloon提示的功能就需要调用Win32Api了,但是 VB6和VB.NET代码上还是有些不同的,红色部分即为二者区别

Imports System.Runtime.InteropServices

Public Class Form1
Inherits System.Windows.Forms.Form

#Region "Win32Api_NotifyIcon"
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
"Shell_NotifyIconA" (ByVal dwMessage As Int32, _
ByRef lpData As NOTIFYICONDATA) As Int32

 1<system.runtime.interopservices.structlayout(runtime.interopservices.layoutkind.sequential)> Private Structure NOTIFYICONDATA   
 2Public cbSize As Int32   
 3Public hwnd As IntPtr   
 4Public uId As Int32   
 5Public uFlags As Int32   
 6Public uCallBackMessage As Int32   
 7Public hIcon As IntPtr   
 8<marshalas(unmanagedtype.byvaltstr, sizeconst:="128)"> _    
 9Public szTip As String   
10Public dwState As Int32   
11Public dwStateMask As Int32   
12<marshalas(unmanagedtype.byvaltstr, sizeconst:="256)"> _   
13Public szInfo As String   
14Public uTimeoutOrVersion As Int32   
15<marshalas(unmanagedtype.byvaltstr, sizeconst:="64)"> _    
16Public szInfoTitle As String   
17Public dwInfoFlags As Int32   
18End Structure 
19
20Private Const NOTIFYICON_VERSION = 3   
21Private Const NOTIFYICON_OLDVERSION = 0 
22
23Private Const NIM_ADD = &amp;H0   
24Private Const NIM_MODIFY = &amp;H1   
25Private Const NIM_DELETE = &amp;H2 
26
27Private Const NIM_SETFOCUS = &amp;H3   
28Private Const NIM_SETVERSION = &amp;H4 
29
30Private Const NIF_MESSAGE = &amp;H1   
31Private Const NIF_ICON = &amp;H2   
32Private Const NIF_TIP = &amp;H4 
33
34Private Const NIF_STATE = &amp;H8   
35Private Const NIF_INFO = &amp;H10 
36
37Private Const NIS_HIDDEN = &amp;H1   
38Private Const NIS_SHAREDICON = &amp;H2 
39
40  
41Private Const NIIF_NONE = &amp;H0   
42Private Const NIIF_WARNING = &amp;H2   
43Private Const NIIF_ERROR = &amp;H3   
44Private Const NIIF_INFO = &amp;H1 
45
46Private nfIconData As NOTIFYICONDATA 
47
48#End Region 
49
50  
51Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load   
52nfIconData = New NOTIFYICONDATA()   
53With nfIconData   
54.cbSize =  System.Runtime.InteropServices.Marshal.SizeOf  (nfIconData)   
55.hwnd = Me.Handle   
56.uId = vbNull   
57.uFlags = NIF_INFO Or NIF_ICON Or NIF_TIP Or NIF_MESSAGE   
58.hIcon = Me.Icon.Handle   
59.szTip = "123" '&amp; Microsoft.VisualBasic.vbNullChar   
60.dwState = 0   
61.dwStateMask = 0   
62.szInfo = "Balloon Style Tool-tip" &amp; Chr(13) &amp; "哈哈" '&amp; vbNullChar   
63.uTimeoutOrVersion = 15000   
64.szInfoTitle = "看到了么?" '&amp; Microsoft.VisualBasic.vbNullChar   
65.dwInfoFlags = NIIF_INFO   
66End With 
67
68  
69Call Shell_NotifyIcon(NIM_ADD, nfIconData) 
70
71End Sub 
72
73Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed   
74Call Shell_NotifyIcon(NIM_DELETE, nfIconData)   
75End Sub   
76End Class</marshalas(unmanagedtype.byvaltstr,></marshalas(unmanagedtype.byvaltstr,></marshalas(unmanagedtype.byvaltstr,></system.runtime.interopservices.structlayout(runtime.interopservices.layoutkind.sequential)>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus