在Windows2000和XP中可以通過調(diào)用USER32.DLL中的SetLayeredWindowAttributes這個API來設(shè)置窗口的透明度,但也給DirectX3D帶來了一個BUG,就是LAYERED窗口閃爍的問題。
你使用Windows的API:CreateWindowEx或SetWindowLong來設(shè)置窗口的WS_EX_LAYERED樣式,這個時候調(diào)用上面的API來設(shè)置窗口的透明度為1-100%。然后你使用DirectX3D在這個窗口的表面上繪圖,這個時候你會發(fā)現(xiàn)窗口會閃爍不停。
但如果你去掉窗口的WX_EXLAYERED屬性,D3D繪圖就不會閃爍。
據(jù)說這是Microsoft的一個BUG,參見相關(guān)引用:http://www.kbalertz.com/kbNamed_899290/899290.aspx.
該連接是說讓讓一個窗口覆蓋住它。