C++ 如何在windows中直接在屏幕上绘制? 例如,我想在屏幕中间画一个红场(或多个红色正方形),仍然能看到没有被方形覆盖的东西,有点像飞溅屏幕。

C++ 如何在windows中直接在屏幕上绘制? 例如,我想在屏幕中间画一个红场(或多个红色正方形),仍然能看到没有被方形覆盖的东西,有点像飞溅屏幕。,c++,winapi,gdi,C++,Winapi,Gdi,我想在windows中实现这一点,但我不知道在屏幕顶部绘制的最佳方法。以下是我目前的想法: 我最初试图通过获取桌面的设备上下文直接在桌面上绘图 使矩形成为一个单独的窗口,因为它们很容易移动,我不必担心透明度 创建一个覆盖整个屏幕并保持在顶部的透明窗口。在屏幕的客户端区域绘制矩形 我认为这三个想法中最好的是最后一个,但如果对我的想法或新想法有任何意见,我将不胜感激:)创建透明窗口,然后在其中绘图,以我的经验来看,它是混乱的。 你为什么不从后台截图呢?把它作为你的蛇游戏的后台。当他们点击某处/死

我想在windows中实现这一点,但我不知道在屏幕顶部绘制的最佳方法。以下是我目前的想法:

  • 我最初试图通过获取桌面的设备上下文直接在桌面上绘图
  • 使矩形成为一个单独的窗口,因为它们很容易移动,我不必担心透明度
  • 创建一个覆盖整个屏幕并保持在顶部的透明窗口。在屏幕的客户端区域绘制矩形

我认为这三个想法中最好的是最后一个,但如果对我的想法或新想法有任何意见,我将不胜感激:)

创建透明窗口,然后在其中绘图,以我的经验来看,它是混乱的。
你为什么不从后台截图呢?把它作为你的蛇游戏的后台。当他们点击某处/死亡时,你只需关闭游戏
您可以捕获最后一次单击,并在关闭游戏后重新提交


这就是我要做的,但当然这只是一个观点。

我见过这样工作的屏幕保护程序,但我发现屏幕没有更新(时钟、进度条等)有点烦人。我同意,尽管这是一个很好的建议:)基本建议,你的标题不应该是
“如何在windows中实现屏幕蛇?”
,应该是“如何在windows中直接在屏幕上绘图”“或者类似的东西。你必须把重点放在你试图解决的问题上,而不是放在它的目的项目上。这样你会得到更好的回复。谢谢你的建议。我已经做了更改,并且同意问题现在已经明确了:)如果您编辑问题的主体,将更多地关注在屏幕上绘图的问题,而不是特定的屏幕蛇游戏的问题,我将投票重新打开您的问题。