六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在托盤圖標(biāo)中添加氣球提示

[摘要]很多朋友都見到過能在托盤圖標(biāo)上出現(xiàn)氣球提示的軟件,不說軟件,就是在“磁盤空間不足”時Windows給出的提示就屬于氣球提示,那么怎樣在自己的程序中添加這樣的氣球提示呢? 其實(shí)并不難,關(guān)鍵就在添加托盤圖標(biāo)時所使用的NOTIFYICONDATA結(jié)構(gòu),源代碼如下:窗體模塊:Option Expli...
很多朋友都見到過能在托盤圖標(biāo)上出現(xiàn)氣球提示的軟件,不說軟件,就是在“磁盤空間不足”時Windows給出的提示就屬于氣球提示,那么怎樣在自己的程序中添加這樣的氣球提示呢?

其實(shí)并不難,關(guān)鍵就在添加托盤圖標(biāo)時所使用的NOTIFYICONDATA結(jié)構(gòu),源代碼如下:

窗體模塊:

Option Explicit

Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

Private Type NOTIFYICONDATA
cbSize As Long ' 結(jié)構(gòu)大小(字節(jié))
hwnd As Long ' 處理消息的窗口的句柄
uId As Long ' 唯一的標(biāo)識符
uFlags As Long ' Flags
uCallBackMessage As Long ' 處理消息的窗口接收的消息
hIcon As Long ' 托盤圖標(biāo)句柄
szTip As String * 128 ' Tooltip 提示文本
dwState As Long ' 托盤圖標(biāo)狀態(tài)
dwStateMask As Long ' 狀態(tài)掩碼
szInfo As String * 256 ' 氣球提示文本
uTimeoutOrVersion As Long ' 氣球提示消失時間或版本
' uTimeout - 氣球提示消失時間(單位:ms, 10000 -- 30000)
' uVersion - 版本(0 for V4, 3 for V5)
szInfoTitle As String * 64 ' 氣球提示標(biāo)題
dwInfoFlags As Long ' 氣球提示圖標(biāo)
End Type

' dwState to NOTIFYICONDATA structure
Private Const NIS_HIDDEN = &H1 ' 隱藏圖標(biāo)
Private Const NIS_SHAREDICON = &H2 ' 共享圖標(biāo)

' dwInfoFlags to NOTIFIICONDATA structure
Private Const NIIF_NONE = &H0 ' 無圖標(biāo)
Private Const NIIF_INFO = &H1 ' "消息"圖標(biāo)
Private Const NIIF_WARNING = &H2 ' "警告"圖標(biāo)
Private Const NIIF_ERROR = &H3 ' "錯誤"圖標(biāo)

' uFlags to NOTIFYICONDATA structure
Private Const NIF_ICON As Long = &H2
Private Const NIF_INFO As Long = &H10
Private Const NIF_MESSAGE As Long = &H1
Private Const NIF_STATE As Long = &H8
Private Const NIF_TIP As Long = &H4

' dwMessage to Shell_NotifyIcon
Private Const NIM_ADD As Long = &H0
Private Const NIM_DELETE As Long = &H2
Private Const NIM_MODIFY As Long = &H1
Private Const NIM_SETFOCUS As Long = &H3
Private Const NIM_SETVERSION As Long = &H4

Private Sub Form_Load()
' 向托盤區(qū)添加圖標(biāo)
Dim IconData As NOTIFYICONDATA
Dim title As String
title = "托盤程序" & vbNullChar
With IconData
.cbSize = Len(IconData)
.hwnd = Me.hwnd
.uId = 0
.uFlags = NIF_TIP Or NIF_ICON Or NIF_MESSAGE Or NIF_INFO Or NIF_STATE
.uCallBackMessage = WM_NOTIFYICON
.szTip = title
.hIcon = Me.Icon.Handle
.dwState = 0
.dwStateMask = 0
.szInfo = "這是氣球提示" & vbNullChar
.szInfoTitle = title
.dwInfoFlags = NIIF_INFO
.uTimeoutOrVersion = 10000
End With
Shell_NotifyIcon NIM_ADD, IconData
preWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub Form_Unload(Cancel As Integer)
' 刪除托盤區(qū)圖標(biāo)
Dim IconData As NOTIFYICONDATA
With IconData
.cbSize = Len(IconData)
.hwnd = Me.hwnd
.uId = 0
.uFlags = NIF_TIP Or NIF_ICON Or NIF_MESSAGE
.uCallBackMessage = WM_NOTIFYICON
.szTip = "托盤程序"
.hIcon = Me.Icon.Handle
End With
Shell_NotifyIcon NIM_DELETE, IconData
SetWindowLong Me.hwnd, GWL_WNDPROC, preWndProc

' 卸載所有窗體
Dim frm As Form
For Each frm In Forms
Unload frm
Next
End Sub


標(biāo)準(zhǔn)模塊:

Option Explicit

Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const WM_RBUTTONUP = &H205
Public Const WM_USER = &H400
Public Const WM_NOTIFYICON = WM_USER + 1 ' 自定義消息
Public Const WM_LBUTTONDBLCLK = &H203
Public Const GWL_WNDPROC = (-4)

' 關(guān)于氣球提示的自定義消息, 2000下不產(chǎn)生這些消息
Public Const NIN_BALLOONSHOW = (WM_USER + &H2) ' 當(dāng) Balloon Tips 彈出時執(zhí)行
Public Const NIN_BALLOONHIDE = (WM_USER + &H3) ' 當(dāng) Balloon Tips 消失時執(zhí)行(如 SysTrayIcon 被刪除),
' 但指定的 TimeOut 時間到或鼠標(biāo)點(diǎn)擊 Balloon Tips 后的消失不發(fā)送此消息
Public Const NIN_BALLOONTIMEOUT = (WM_USER + &H4) ' 當(dāng) Balloon Tips 的 TimeOut 時間到時執(zhí)行
Public Const NIN_BALLOONUSERCLICK = (WM_USER + &H5) ' 當(dāng)鼠標(biāo)點(diǎn)擊 Balloon Tips 時執(zhí)行。
' 注意:在XP下執(zhí)行時 Balloon Tips 上有個關(guān)閉按鈕,
' 如果鼠標(biāo)點(diǎn)在按鈕上將接收到 NIN_BALLOONTIMEOUT 消息。

Public preWndProc As Long

' Form1 窗口入口函數(shù)
Function WindowProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
' 攔截 WM_NOTIFYICON 消息
If msg = WM_NOTIFYICON Then
Select Case lParam
Case WM_RBUTTONUP
' 右鍵單擊圖標(biāo)是運(yùn)行這里的代碼, 可以在這里添加彈出右鍵菜單的代碼
Case WM_LBUTTONDBLCLK
Unload Form1
Case NIN_BALLOONSHOW
Debug.Print "顯示氣球提示"
Case NIN_BALLOONHIDE
Debug.Print "刪除托盤圖標(biāo)"
Case NIN_BALLOONTIMEOUT
Debug.Print "氣球提示消失"
Case NIN_BALLOONUSERCLICK
Debug.Print "單擊氣球提示"
End Select
End If
WindowProc = CallWindowProc(preWndProc, hwnd, msg, wParam, lParam)
End Function




主站蜘蛛池模板: 婷婷午夜 | 亚洲第一伊人 | 影音先锋色图 | 青草伊伊 | 天天干国产 | 中文字幕字幕乱码熟 | 四虎影院观看视频在线观看 | 日韩v片| 欧洲久久 | 色香蕉色香蕉在线视频 | 四虎精品永久在线 | 午夜国产精品理论片久久影院 | 日韩视频第1页 | 日韩在线www| 日本国产免费一区不卡在线 | 日韩版码免费福利视频 | 五月激情视频 | 亚洲女人被黑人巨大进入 | 日本中出| 青青草97国产精品免费观看 | 欧美一区二区三区成人看不卡 | 色偷偷91综合久久噜噜app | 亚洲成a人| 五月激情啪啪网 | 婷婷午夜 | 亚洲国产欧美在线成人aaaa | 在线看91| 性生活一区 | 亚洲免费播放 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看播放 | 四虎家庭影院 | 亚洲第一网站 | 亚洲综合色就色手机在线观看 | 伊人狼人影院 | 一级十八以 下岁女子毛片 一级人做人爰a全过程免费视频 | 欧美在线观看高清一二三区 | 日韩精品亚洲人成在线播放 | 日本男人的天堂 | 欧洲在线 | 亚洲人网| 日韩在线1 |