请问关于DirectDraw窗口模式的一些常用方法

请教关于DirectDraw窗口模式的一些常用方法
小弟对DirectDraw了解很浅,现在要弄一个窗口模式的DirectDraw应用程序,本来一切都OK了,却突然发现一个巨大的BUG,那就是改变屏幕分辨率后一切黑屏。
我使用的方法是将所有图元存放在各个离屏表面中,然后在各个表面之间做Blt,最终显示出画面。
经过调试发现,当屏幕分辨率发生改变时,所有的表面都失效了,->Restore根本不起作用。
请教各位前辈,做DirectDraw窗口程序,一般采用什么来存放图元,是自定义的结构体还是DirectDraw表面,如果是前者又如何利用DirectDraw的高效性,如果是后者又如何避免表面的丢失呢?
另外附带一个问题,在两个离屏表面之间作Blt可以利用硬件特性么?


------解决方案--------------------
怎么个失效法,如果只是分辨率改变应当不会,可能是改变颜色色深了吧。
------解决方案--------------------
我的DIRECTDRAWSURFACE在按下“Ctrl+Alt+Del”调出系统登录界面后也会丢失,并且用Restore也不能恢复。
后来多Lock几次,成功了,表面就可用了。
------解决方案--------------------
我也碰到了同样的问题,改变分辨率,离屏页面lock失败,返回0x887601c2,盼高手指点!
------解决方案--------------------
关注
------解决方案--------------------
关注
------解决方案--------------------
就是这么设计的,现在连restore都成了专门的学问.
一般来说这种情况都是把这些重新载入一次,可以看到很多游戏都是这样,在这种时候请观测指示灯,硬盘在读