2014-10-22 64 views
1

如果我在visual studio C++上創建一個表單,並將表單設置爲與屏幕一樣大,並且勝過所有內容,我可以創建一個全屏的表單。如果我按下Windows鍵,啓動菜單就會顯示出來,並且我可以在我的上面運行任何其他程序。全屏形式和視頻遊戲有什麼區別?

如果我運行一個視頻遊戲,例如我們的英雄聯盟,屏幕會出現毛病,遊戲會全屏顯示。如果按下Windows鍵則什麼都不會發生。你不能在遊戲之外擁有任何東西,如果它在自己的環境中,就不會有任何東西。

這不是我尋求一個完整的答案或做它的代碼。只是我很想知道遊戲設計師使用什麼不同的技術。

+0

+1在包含英雄聯盟的StackOverflow問題中。喜歡那個遊戲。 @馬里奧的回答也很好。 – AlexanderBrevig 2014-10-22 11:15:44

回答

2

這兩種技術基本上是全屏,但是有一個微小的差別:

  • 大多數遊戲使用的「真正的」全屏模式被稱爲獨家全屏,授予遊戲(或程序中一般)對圖形輸出的獨佔控制,因此它可以控制諸如分辨率,刷新率,垂直同步等等。

  • 您自己創建的全屏窗口是合作全屏(通常稱爲無邊框窗口),它仍然允許其他程序重疊您的窗口。諸如分辨率,刷新率等事情仍然由疊加窗口系統處理。

這兩種技術在許多現代的遊戲,像傳說的聯賽爲好。

然而,您實際的Windows密鑰被阻止的情況有所不同。實際的全屏模式對此沒有任何影響。相反,該程序必須「吃」由窗口系統發送的按鍵事件。如果它傳遞了,那麼它仍然由系統處理(程序工作的方式)。如果它被吃掉(即沒有被返回),那麼你會得到你看到的英雄聯盟的行爲。

相關問題