要做到透明控件,有兩種辦法。
1,把父窗口中控件所在區域的背景先畫到控件上。這種辦法適合幾乎所有的控件。
2,對於簡單的控件,如Static、RadioButton、CheckBox,他們有特殊的辦法。
下面就是第二種做法:(直接看圖)
這是效果圖。主要包括Static、Radio、CheckBox、GroupBox。
接下來是代碼:
(注意環境:vs2010,繼承了CDialogEx,所以纔有這個函數)
比較奇怪的是,我最初加上了case CTLCOLOR_STATIC: 結果卻是Radio和CheckBox底色是白色。
後來我改成這樣,只用CTLCOLOR_BTN,結果Static背景也透明瞭。
但是對於背景是圖片的情況,這就不管用了。那麼又該如何解決。正如上面說的第一種方法:參考此程序:
http://download.csdn.net/detail/zhoujielunzhimi/4687178
效果圖: