全屏表单和电子游戏有什么区别? 如果我在VisualStudioC++上创建一个表单,并使表单像屏幕一样大,并且超过所有的内容,我可以创建一个全屏的表单。如果我按windows键,启动菜单就会出现,我可以让任何其他程序在我的上面运行

全屏表单和电子游戏有什么区别? 如果我在VisualStudioC++上创建一个表单,并使表单像屏幕一样大,并且超过所有的内容,我可以创建一个全屏的表单。如果我按windows键,启动菜单就会出现,我可以让任何其他程序在我的上面运行,c++,windows,winforms,C++,Windows,Winforms,如果我运行一个像《美国传奇联盟》这样的电子游戏,屏幕会出现故障,游戏会全屏进行。如果按windows键,则不会发生任何事情。你不能把任何东西放在游戏上面,就像它在自己的环境中一样 这并不是我在寻找一个完整的答案或代码。只是我很想知道游戏设计师使用了哪些不同的技术。这两种技术基本上都是全屏的,但有一个小区别: 大多数游戏使用的“真实”全屏模式称为独占全屏,它授予游戏(或程序)对图形输出的独占控制权,因此它能够控制分辨率、刷新率、垂直同步等 您自己创建的全屏窗口是一个协作全屏窗口(通常称为无边界窗

如果我运行一个像《美国传奇联盟》这样的电子游戏,屏幕会出现故障,游戏会全屏进行。如果按windows键,则不会发生任何事情。你不能把任何东西放在游戏上面,就像它在自己的环境中一样


这并不是我在寻找一个完整的答案或代码。只是我很想知道游戏设计师使用了哪些不同的技术。

这两种技术基本上都是全屏的,但有一个小区别:

  • 大多数游戏使用的“真实”全屏模式称为独占全屏,它授予游戏(或程序)对图形输出的独占控制权,因此它能够控制分辨率、刷新率、垂直同步等

  • 您自己创建的全屏窗口是一个协作全屏窗口(通常称为无边界窗口),它仍然允许其他程序与您的窗口重叠。分辨率、刷新率等仍由叠加窗口系统处理

这两种技术在很多现代游戏中都可用,比如传奇联盟


但是,被阻止的实际Windows密钥有所不同。实际的全屏模式对此没有任何影响。相反,程序必须“吃掉”窗口系统发送的按键事件。如果它被传递,那么它仍然由系统处理(程序的工作方式)。如果它被吃掉了(即未被退回),那么您将看到传奇联盟的行为。

+1用于将传奇联盟包括在问题中。我喜欢那个游戏@马里奥的回答也很好。