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