在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.
该连接是说让让一个窗口覆盖住它。