如何在c ++中绘制到屏幕?

时间:2010-06-05 18:55:55

标签: c++ screen draw invisible

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

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

这是一个例子: 假设我希望屏幕中央出现2个黄色正方形,大小为5 x 5像素,位于所有其他应用程序的顶部,对于打印屏幕无法点击和不可见。

[编辑]

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

4 个答案:

答案 0 :(得分: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开始它很慢

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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