在“狀態區”中建立圖標

發表于:2007-07-14來源:作者:點擊數: 標簽:
Win95中如“音量”、“日期”、“屏幕”等可以在Win95的狀態欄(Tray)上建立快捷圖標。如果鼠 標停留在圖標上,會顯示出相應的工具提示(ToolTip),當用戶在圖標上單擊(或雙擊)鼠標左鍵時,軟 件會實現相應的功能,單擊右鍵時會實現其簡捷的功能。 Tray也

      Win95中如“音量”、“日期”、“屏幕”等可以在Win95的狀態欄(Tray)上建立快捷圖標。如果鼠
標停留在圖標上,會顯示出相應的工具提示(ToolTip),當用戶在圖標上單擊(或雙擊)鼠標左鍵時,軟
件會實現相應的功能,單擊右鍵時會實現其簡捷的功能。
    Tray也稱作SysTray、TrayIcon、NotifyIcon、Status Area等,它是Win95/NT的任務條上一個特殊區
域,許多軟件運行時在Tray中加入自己的圖標,這個區域的另一個特殊之處在于你可以從資源管理器內
拖文件然后放在這個區域。正是由于這些特性,Tray編程在Win95/NT中有特殊的地位。
    Tray編程比較特殊,主要包括三個主要方面:圖標、工具提示和消息。它屬于Shell編程的一部分,
主要是利用Shell API中的Shell_NotifyIcon函數完成的。Shell_NotifyIcon函數是這樣聲明的:
Type NOTIFYICONDATA
        cbSize As Long  結構所占的字節數
        hwnd As Long    接受TRAY托盤圖標消息的窗口句柄
        uID As Long    由應用程序定義的圖標識別符
        uFlags As Long   標志
        uCallbackMessage As Long  由應用程序定義的消息
        hIcon As Long  TRAY圖標句柄
        szTip As String * 64   工具提示字符串
End Type
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long,
lpData As NOTIFYICONDATA) As Long
    這個結構中的uFlags很重要,它有三種取值:NIF_ICON、NIF_MESSAGE和NIF_TIP,分別表示
hIcon、uCallbackMessage和szTip參數有效,用來修改圖標、消息和工具提示。這三個取值可以同時使
用(三個參數相或),也可以單獨使用。為了實現對用戶鼠標操作的響應,需要在程序中處理
uCallbackMessage所定義的消息,該消息的長參數lParam包含Win32所定義的鼠標消息,如果有多個圖
標,短參數wParam表示圖標識別符。
    在vb光盤中\TOOLS\UNSUPPRT\SYSTRAY目錄下有SYSTRAY的工程,經編譯后生成
SYSTRAY.OCX控件。
    現在我們應用SYSTRAY.OCX控件進行Tray編程。
    首先建立一個“工程”,依次:“工程”——“部件”(或者在“工具箱”上單擊鼠標右鍵選擇“部
件”),再復選SYSTEM TRAY CONTROL CSYSTRAY,CSYSTRAY控件即出現在“工具箱”中。
    SYSTRAY.OCX控件擁有MouseDblClick、MouseDown、MouseMove、MouseUp四個事件,響應先
后為MouseMove、MouseDown、MouseUp、MouseDblClick。下面編程很清楚地說明他們的響應時間次
序。
Private Sub cSysTray1_MouseDblClick(Button As Integer, Id As Long)
MsgBox "Hei!You have DblClick the mouse!"
End Sub
Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long)
If Button = 2 Then
MsgBox "Hei!You have clicked me in right button!"
End If
End Sub
Private Sub cSysTray1_MouseMove(Id As Long)
MsgBox "Hello!I am here!"
End Sub
Private Sub cSysTray1_MouseUp(Button As Integer, Id As Long)
MsgBox "Hei!You clicked me just now!"
End Sub
Private Sub Form_Load()
cSysTray1.TrayTip = "Hello! I am the King of the world!"
cSysTray1.InTray = True
cSysTray1.TrayIcon = "c:\fittings\FACE.ico"
End Sub
        SYSTRAY控件還擁有InTray、Name、TrayIcon、TrayTip、Parent、Index、Object、Tag屬性。InTray
設置是否在Win95的狀態欄Tray上建立一個快捷圖標;Name設置SYSTRAY控件的名稱;TrayIcon設
置在Tray上所建立快捷圖標的外觀;TrayTip設置如果鼠標停留在圖標上所顯示的工具提示(ToolTip)內
容;Tag儲存程序所需要的附加數據。
通過實踐發現,在使用VB開發應用程序時,靈活使用API 函數,會更大地發揮VB 的作用,使開
發的軟件更專業,功能更強大。本文僅僅是介紹了一下API函數在Win95中的使用方法,以作拋磚引玉
之用。真正的應用API 函數,還需要更詳盡的資料和讀者更大的努力。
上述程序在中文Windows 98和 VB5.0中文企業版下調試通過。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97