使用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
<System.Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential)> Private Structure NOTIFYICONDATA Public cbSize As Int32 Public hwnd As IntPtr Public uId As Int32 Public uFlags As Int32 Public uCallBackMessage As Int32 Public hIcon As IntPtr <MarshalAs(UnmanagedType.ByValTStr, sizeconst:=128)> _ Public szTip As String Public dwState As Int32 Public dwStateMask As Int32 <MarshalAs(UnmanagedType.ByValTStr, sizeconst:=256)> _ Public szInfo As String Public uTimeoutOrVersion As Int32 <MarshalAs(UnmanagedType.ByValTStr, sizeconst:=64)> _ Public szInfoTitle As String Public dwInfoFlags As Int32 End Structure
Private Const NOTIFYICON_VERSION = 3 Private Const NOTIFYICON_OLDVERSION = 0
Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2
Private Const NIM_SETFOCUS = &H3 Private Const NIM_SETVERSION = &H4
Private Const NIF_MESSAGE = &H1 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4
Private Const NIF_STATE = &H8 Private Const NIF_INFO = &H10
Private Const NIS_HIDDEN = &H1 Private Const NIS_SHAREDICON = &H2
Private Const NIIF_NONE = &H0 Private Const NIIF_WARNING = &H2 Private Const NIIF_ERROR = &H3 Private Const NIIF_INFO = &H1
Private nfIconData As NOTIFYICONDATA
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load nfIconData = New NOTIFYICONDATA() With nfIconData .cbSize = System.Runtime.InteropServices.Marshal.SizeOf(nfIconData) .hwnd = Me.Handle .uId = vbNull .uFlags = NIF_INFO Or NIF_ICON Or NIF_TIP Or NIF_MESSAGE .hIcon = Me.Icon.Handle .szTip = "123" ''''& Microsoft.VisualBasic.vbNullChar .dwState = 0 .dwStateMask = 0 .szInfo = "Balloon Style Tool-tip" & Chr(13) & "哈哈" ''''& vbNullChar .uTimeoutOrVersion = 15000 .szInfoTitle = "看到了么?" ''''& Microsoft.VisualBasic.vbNullChar .dwInfoFlags = NIIF_INFO End With
Call Shell_NotifyIcon(NIM_ADD, nfIconData)
End Sub
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed Call Shell_NotifyIcon(NIM_DELETE, nfIconData) End Sub End Class
|