2012-03-01 65 views
0

我有一個Directdraw應用程序(c),一旦用戶使用應用程序上的按鈕旋轉屏幕,該應用程序就會變成黑色。該按鈕使用enumdisplaysettings來執行此操作。我已經在Nvidia和ATI上測試過這個問題,問題依然存在。DirectDraw應用程序在屏幕方向更改後變爲黑色

有沒有辦法讓Directdraw應用程序「displaysettings-proof」?我可以在屏幕旋轉後添加一些代碼以恢復顯示嗎?

+0

您可能需要關閉並重新初始化DirectDraw。我自己沒有這樣做,但無意中聽到我的同事發誓。 – Deanna 2012-03-01 10:00:31

+0

您可以將我添加到發誓的人列表中。我希望有一個更簡單的方法。在追求這條路線之前,我正在測試一些東西。也許這與緩衝區有關。想法結束。 – zoyidian 2012-03-01 11:10:50

回答

0

可以使用IDirectDraw :: RestoreDisplayMode將顯示模式重置爲IDirectDraw :: SetDisplayMode被調用之前的狀態。但我不太確定這是不是你想要的。

+0

在調用enumdisplaysettings之前是否需要顯式調用IDirectDraw :: RestoreDisplayMode?或者我只是在屏幕翻轉後才設置IDirectDraw :: RestoreDisplayMode? – zoyidian 2012-03-03 16:23:47

+0

另外我在Windows桌面上不是Win CE。 – zoyidian 2012-03-03 16:37:20