- 相關推薦
應用程序指示圖標的實現方法研究
應用程序指示圖標的實現方法研究
蔣俊杰 石波 潘若愚(合肥工業大學網絡所 230009)
摘要:本文較詳細地介紹了Windows環境下的應用程序指示圖標的基本原理及其實現方法,并給出了通過Delphi編程環境實現的應用程序指示圖標的實例.
關鍵詞:指示圖標 Delphi
1.引言
在早期的DOS操作系統中,存在著一類特殊的程序—內存駐留程序(TSR),這類程序始終駐留在內存中,當需要使用時就直接從內存中調用,大大提高了時間效率,而這類程序一般的也是系統需要頻繁調用的程序或是一個實時監控程序,因此通過駐留內存來換取時間效率是值得的.
在Windows環境下也需要這一類程序,一些是系統程序如輸入法和系統時鐘,一些是應用程序如一些實時監控的殺毒軟件等,這些程序通常都是一直伴隨著系統運行的,它們在運行時一般不需要或很少需要用戶的干預, 而Windows環境下的應用程序在運行時通常都是以窗口形式存在的,即使最小化也會在任務欄上留下一個帶圖標及標題的按鈕,又由于Windows是多任務操作系統,用戶幾乎肯定會同時進行其他操作,因此象上述應用程序若不采取其他措施就必然會影響到用戶的其他操作或者是程序自身容易受到意外的用戶干預,影響了正常運行.
可喜的是,從Windows 95 和 Windows NT 4.0開始,出現了一個令人振奮的特性:任務欄指示區.這個通常位于任務條右端的區域能包含一種稱作指示圖標(NotifyIcon)的小圖標(如輸入法圖標、系統時鐘圖標等),通過這些圖標能夠引出復雜的應用程序或菜單,而具有了這種圖標的應用程序也就不存在上面所講的問題了.本文將介紹Windows環境下應用程序指示圖標的基本原理及其實現方法,并給出通過Delphi編程環境實現的應用程序指示圖標的實例.
2.基本原理
要實現應用程序指示圖標,首先需要創建一個應用程序窗口,再注冊一個圖標到任務欄,并設置它的消息循環(使圖標與某個應用程序窗口關聯),最后還應在程序退出時關閉該指示圖標,這就是整個應用程序指示圖標實現過程的基本步驟,當然還有很多具體的細節上的工作.下面就介紹一些比較關鍵的基本原理及技術細節.
在Windows系統中存在這樣一個基本的數據結構: TNotifyIconData,它是一個用來設置窗口句柄的數據結構,是一個記錄類型的參數,其具體結構如下:
Type
TNotifyIconData = record
cbSize: DWORD;
hWnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..63] of AnsiChar;
end;
要實現指示圖標首先就需要設置這個圖標的窗口句柄(這將定義哪個窗口處理消息循環),回調消息號,圖標,工具提示等,這也是所有工作的關鍵.一旦這個數據結構設置了,我們就可以增加一個圖標到任務欄上的指示區了,同時將該圖標與一個窗口(應用程序)關聯了起來.
下面就簡要介紹上述數據結構中的各個成員:
·cbSize是該結構的大小(由系統用來確定版本);
·hWnd是一個窗口句柄,用來指示Icon向該窗口發送消息,即將Icon與該窗口關聯了起來;
·uID是圖標標識符,僅當程序有多個圖標時才有用, 它是用于區分各個圖標的;
·uFlags有三個可能的標志: nif_Message、nif_Icon及nif_
【應用程序指示圖標的實現方法研究】相關文章:
非現場審計的實現方法研究03-24
通過圖的鄰接矩陣實現圖的搜索實現(一)03-07
關于司法統計方法及指標的研究11-18
基于XML的智能應用程序的研究03-07
VC++實現串口通信的應用程序設計03-07
基于Monte Carlo方法的通信仿真實現及應用研究03-30
基于CPLD的RS485通信實現方法研究03-07