可能很多朋友曾經遇到過這樣的問題:DelphiX在全螢幕模式下Alt+Tab切換出來後,再回到原來的視窗時,頁面變成一片空白。這對遊戲玩家來說是難以忍受的。
火人專門為此搜尋了不少資料,發現DelphiX一直存在這樣的問題,但大都用屏蔽ALT+TAB來解決,估計這是DELPHIX的一個小BUG。
但火人不太喜歡用這種比較“霸道”的方式解決,這會給使用者帶來相當的不方便。經多次測試,火人發現了產生這類問題的條件和避免出現這類問題的方法(但不能說徹底解決,因時間有限,無法解釋原因,希望高手能進一步研究並給出理論上的解釋),與朋友們共用:
先下載如下常式:
點擊下載此檔案
此常式運行後一切正常,但Alt+Tab切換出來後,再回到原來的視窗時,頁面就會變成一片空白,要避免此錯誤,火人發現如下兩個方法:
1、設DXDraw.Options := DXDraw.Options + [doFlip];但如果Form上有其它VCL控制項(如TEdit)時,VCL控制項就不能正常顯示。
2、設:DXDraw.AutoSize:=False,另外為了DXDraw能按正確的解析度顯示,在FormCreate中加入:
DXDraw.SurfaceWidth := DXDraw.Display.Width;
DXDraw.SurfaceHeight := DXDraw.Display.Height;
此方法在流行的傳奇2程式上測試通過。
引用內容:另經網友測試,也可使用如下方法:
關鍵是在ALT+TAB之後要把視窗還原到視窗模式:
DXDraw.Finalize;
DXDraw.Options := DXDraw.Options - [doFullScreen];
DXDraw.Initialize;
視窗啟用時再設定為全螢幕模式如下:
DXDraw.Finalize;
BorderStyle := bsNone;
DXDraw.Options := DXDraw.Options + [doFullScreen];
InitDXDraw;
原文:
http://www.huasoft.net/huosoft/blogview.asp?logID=39&cateID=2