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