睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

使用分層界面來實現界面皮膚的好處是:可以保證圖片邊緣處理不失真,且能用于異形窗口上,如一些不規則的窗口,你很難用SetWindowRgn來達到理想效果。
在很多情況下,界面的漂亮與否,取決于PS的制作及創意,而界面編程所需要做的就是將圖片完整無缺的展示給用戶。
分層窗口的好處就是:用一層窗口來描繪窗口背景,以確保背景圖片不會失真,而另一層窗口用來放置控件,除控件之外的區域全是透明的。為什么要這么麻煩呢?因為我們將要用到UpdateLayeredWindow來實現窗口背景描繪,一旦執行這個函數后,窗口的控件將會被覆蓋,不會再顯示。所以我們要再加一層透明窗口,來放置控件,以確保控件不會受到UpdateLayeredWindow的影響。
這樣一來,窗口繪圖將不會影響到控件,并且可以達到窗口透明,控件不透明的效果。當然這個只是個別的窗口實現效果需求,這里不做重點討論。
這里我用了兩個窗口類來完成此項工作,CThemedLayerWnd和CThemedAlphaWnd。CThemedLayerWnd負責截取正常窗口的創建消息,并在正常窗口創建之前,創建CThemedAlphaWnd;CThemedAlphaWnd主要負責窗口的描繪,也就是使用UpdateLayeredWindow來讓Windows自己描繪窗口皮膚。
正常窗口只需要繼承模板類CThemedLayerWnd,并將CThemedLayerWnd加入到自己的窗口消息鏈中即可:
[cpp] view plaincopy
|
from:http://blog.csdn.net/renstarone/article/details/12371309
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成