前些日子用DirectDraw做视频显示时。遇到过这样的现象,在锁定屏幕的情况下去创建主平面和后备平面,当然肯定是创建不出来的了。之后就一直尝试去创建主平面和后备屏面,回复屏幕后,还是创建不成功。郁闷了,返回错误码竟然是“设备不支持”。之后这个问题就一直没有解决。
过了一段时间后,反过来想想,如果要在知道设备丢失的情况下不再去创建平面,只在正常情况下创建平面,会不会就能把问题解决呢?赶快找了探测设备丢失的函数TestCooperativeLevel,用法msnd上都有,当然现在这个函数已经抛弃可以用CheckDeviceState函数替换。这样问题解决了。
回想一下解决问题的过程,可以从各个角度去考虑问题。如果创建失败了在创建就不能创建成功,那么我明明知道创建失败那为什么还要去创建呢?于是在知道设备丢失后就不去创建,只在正常情况下创建。这样问题不就解决了吗?。所以我们看待一个问题要从不同的角度去考虑。