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