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