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