6

我将如何在屏幕上绘制一些东西?不是控制台窗口,而是整个屏幕,最好将控制台最小化。

另外,它会出现在打印屏幕上吗?我想要做的是在屏幕顶部创建一个只有我和我的应用程序知道的图层,但仍然能够像往常一样使用应用程序。

下面是一个示例:假设我想要 2 个 5 x 5 像素大小的黄色方块出现在所有其他应用程序之上的屏幕中心,不可点击且对打印屏幕不可见。

[编辑]

我忘了提到我在 Windows XP 上使用 Visual Studio 2010。

4

4 回答 4

8

在 Windows 中,您可以使用 GetDC 功能。只是一个简约的例子:

#include <Windows.h>
#include <iostream>

void drawRect(){
    HDC screenDC = ::GetDC(0);
    ::Rectangle(screenDC, 200, 200, 300, 300);
::ReleaseDC(0, screenDC);
}
int main(void){
    char c;
    std::cin >> c;
    if (c == 'd') drawRect();
    std::cin >> c;
    return 0;
}

但由于 Windows Vista 非常慢

于 2010-06-05T18:58:19.163 回答
4

C++ 没有“屏幕”的概念,尤其没有“图形”的概念。所需的功能由您的操作系统提供。在许多系统上,您将需要一个“窗口”并在其上绘图。要做到这一点,像 Qt 这样的库可能会有所帮助。Oops 提供了一个 Windows 解决方案。也许你想使用一些 OpenGL 库,或者来自 DirectX 的 Windows 的 DirectDraw/Direct3D,以防你想用你的图形做一些 3D 的东西。

于 2010-06-05T19:20:48.483 回答
3

Windows 提供 GDI/+、WPF 和 DirectX(包括 Vista+ 上的 Direct2D)。

于 2010-06-05T19:27:19.360 回答
2

(相当不错但最近没有更新)图形库anti-grain geometry具有非常简单的绑定,可以在各种窗口系统上显示其演示,您可以查看这些示例。但是对于更多涉及的内容,您可能正在谈论操作系统特定的库。

于 2010-06-05T19:24:01.863 回答