【正文】
dwInfoFlags := aBalloonIconTypes[IconType]。 end {with}?! esult := Shell_NotifyIcon(NIM_MODIFY, @FIconData) end else result := True?! nd。 //end of procedure Balloon //} 氣泡提示的事件通知 由于新風(fēng)格提示的引入,通知欄圖標(biāo)的消息通知也相應(yīng)增加,如果通知欄圖標(biāo)實(shí)現(xiàn)了氣泡提示,那么當(dāng)用戶將鼠標(biāo)指針移動到通知欄圖標(biāo)上時(shí),Windows外殼會向通知欄應(yīng)用程序送出如下四個(gè)消息中的一個(gè)或多個(gè)。 NIN_BALLOONSHOW 當(dāng)氣泡提示顯示后外殼發(fā)送此消息 NIN_BALLOONTIMEOUT 當(dāng)氣泡提示由于超時(shí)而消失時(shí)外殼發(fā)送此消息 NIN_BALLOONHIDE 當(dāng)氣泡提示消失時(shí)(比如通知欄圖標(biāo)被刪除)外殼發(fā)送此消息,但氣泡提示由于超時(shí)而消失不會產(chǎn)生此消息 NIN_BALLOONUSERCLICK 當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí)(點(diǎn)擊氣泡提示和通知欄圖標(biāo)均可)外殼發(fā)送此消息 在Delphi強(qiáng)大的消息封裝機(jī)制支持下,可以方便地將上述四個(gè)消息封裝為四個(gè)事件供開發(fā)人員使用。簡單來說就是在控件中一個(gè)隱藏窗口(創(chuàng)建隱藏窗口的方法可查閱相關(guān)文章,此處略過)的窗口消息處理過程中接收這四個(gè)消息并分別映射到四個(gè)事件,示范代碼如下: procedure (var Msg: TMessage)。 begin …… case of WM_LBUTTONDOWN: …… WM_RBUTTONDBLCLk: …… else if = NIN_BALLOONSHOW then //氣泡提示顯示后 begin if Assigned(FOnBalloonShow) then FOnBalloonShow(Self) end else if = NIN_BALLOONHIDE then //氣泡提示由于超時(shí)而消失 begin if Assigned