該功能主要靠 DesktopAlert 靜態類和 AlertWindowExt , AlertWindowExt 是繼承 Form 。
彈窗信息必須在知欄圖標在顯示的狀態下才有效,所以在調用 ShowAlert() 彈出信息前必須調用 ShowNotify() 顯示出通知欄圖標。彈窗信息一共有6種類型,每種類型都有各自的顏色。
當然通知欄的通知圖標也會顯示相應的顏色。通知欄圖標的顏色會覆蓋上一次的顏色進行閃爍通知,當鼠標移動到窗體時,通知欄圖標會停止閃爍恢復到默認狀態。
目前通知的提示音有三種可以通過通知欄圖標右鍵菜單設置。
目前允許同時顯示提示信息窗口最大數量為20個,也就是說當信息多出20個后,只有當你把以顯示的信息窗體關閉,后面的信息才會自動彈出來。
我們還可以通過勾選通知欄圖標的“隱藏全部信息”功能,這樣信息不回自動顯示出來,只有通知欄圖標閃爍和提示音,但鼠標移動到通知欄圖標時才會自動顯示出信息。這就有點類似QQ的信息提示功能。
彈窗信息界面如下:頂部從左到右分別是通知圖標、標題、復制信息、關閉窗體。
右邊的滾動條會隨內容出現或隱藏。由於原生的滾動條太丑了,之前也想過重寫window消息來美化滾動條,但是還是覺得太復雜了,所以這個滾動條其實是用GDI繪制出來再配合鼠標事件來模擬的。如果你覺得這部分功能不完善,你可以繼續完善它。同事也可以用鼠標讓窗體獲取焦點后再用滾輪滑動文本。
信息窗體還提供一個向左拉伸的功能使得更好的閱讀信息。如下:
DesktopAlert 的公開方法
AlertWindowExt 主要通過重寫進行美化