c++ - 如何在windows中直接在屏幕上绘图?

标签 c++ winapi gdi

例如,我想在屏幕中间绘制一个红色方 block (或多个红色方 block ),并且仍然能够看到该方 block 没有覆盖的所有内容,有点像启动屏幕。

我想在 Windows 中实现此功能,但我不知道在屏幕顶部绘图的最佳方法。到目前为止,这些是我的想法:

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

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

最佳答案

创建透明窗口,然后在其中绘图,根据我的经验,这很困惑。
为什么不直接从背景中截取屏幕截图并将其设置为贪吃蛇游戏的背景。当他们点击某处/死亡时,你只需关闭游戏即可。
您可以捕捉最后一次点击并在关闭游戏后重新提交。

这就是我会做的,但这当然只是一个意见。

关于c++ - 如何在windows中直接在屏幕上绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13496312/

相关文章:

c++ - 如何检查模板类方法的返回类型?

c++ - 应为使用 GetDIBits 函数从 HBITMAP 接收的 DIB 数据分配多少内存?

c++ - CreateCompatibleDC 的结果只有两种颜色

c++ - 样式检查:错误:打开括号 '('前需要空格

c++ - 有没有办法在它以编程方式返回的引用上多次调用一个函数? -元组动态访问

c++ - 使用可变参数模板在 C++ 中实现差异化

捕获窗口像素而不考虑其 z 顺序

c - 没有 "Windows Security Alert"的网络程序

C++:尝试 Hook 消息框并更改其位置

c - 是否可以使用纯 GDI 将抗锯齿文本渲染到透明背景上?