很多軟件運行時會在系統托盤區(就是桌面右下角顯示時間的區域)出現一個小圖標,它作為程序運行的一個標志,我們可以通過使用小圖標所彈出的菜單來控制應用程序的狀態。本例就給出了一個功能比較完整的托盤程序,我們可以看到怎樣用API函數Shell_NotifyIcon來添加、刪除、更改托盤圖標;而且例中還演示了為托盤圖標添加右鍵菜單和浮動提示的方法。
程序(附后)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函數,其中Shell_NotifyIcon是主要的函數,它用來添加、刪除、更改系統托盤區(taskbar status area)的圖標,所以我們先來看看這個函數的聲明和參數:
使用API函數之前必須先在程序中聲明如下:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
|
其中各參數的意義如下表:
參數: |
意義 |
dwMessage |
為消息設置值,它可以是以下的幾個常數值:0、1、2 |
NIM_ADD = 0 |
加入圖標到系統狀態欄中 |
NIM_MODIFY = 1 |
修改系統狀態欄中的圖標 |
NIM_DELETE = 2 |
刪除系統狀態欄中的圖標 |
LpData 用以傳入NOTIFYICONDATA數據結構變量,其結構如下所示:
Type NOTIFYICONDATA
cbSize As Long 需填入NOTIFYICONDATA數據結構的長度 HWnd As Long 設置成窗口的句柄 Uid As Long 為圖標所設置的ID值 UFlags As Long 設置uCallbackMessage,hIcon,szTip是否有效 UCallbackMessage As Long 消息編號 HIcon As Long 顯示在狀態欄上的圖標 SzTip As String * 64 提示信息 End Type |
返回值 Long,非零表示成功,零表示失敗
在使用這個API函數之前我們應該先定義結構類型NOTIFYICONDATA:
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 |
然后定義一個NOTIFYICONDATA的變量TheData來記錄設置托盤圖標的數據
Private TheData As NOTIFYICONDATA |
VB托盤程序詳解(1)[轉載]VB托盤程序詳解(2)[轉載]VB托盤程序詳解(3)[轉載]VB托盤程序詳解(4)[轉載]VB托盤程序詳解(5)[轉載]