.NET绘制全屏游戏

时间:2012-12-29 15:49:18

标签: .net winapi c++-cli

现在我可以绘制游戏,但只有当它们处于窗口模式时,我才会在TopMost表单上绘制并将其设置为可点击:

//C++ .NET 4
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    int initialStyle = GetWindowLong(this->Handle, -20);
    SetWindowLong(this->Handle, -20, initialStyle | 0x80000 | 0x20);
}

但如果游戏以全屏模式运行,我无法做到:(

我可以使用全屏游戏吗? (如果可能,使用C ++)

1 个答案:

答案 0 :(得分:2)

你不能(至少那样)。当游戏进入全屏模式时,他们通常使用对DirectX或OpenGL的低级调用来执行此操作,这将禁用Windows桌面的所有窗口逻辑。然后游戏直接进入图形设备的帧缓冲区,图形驱动程序将在屏幕上显示此内容 - 窗口被旁路为全部。

要真正画出“结束”,你可以忘记所有类型的WinForms / MFC调用,但是你必须查看允许你操作帧缓冲的低级驱动程序调用(尽管我怀疑你可以从外部过程)。