How to draw to screen in c++?

前端 未结 4 723
一个人的身影
一个人的身影 2021-02-06 08:09

How would I draw something on the screen ? not the console window but the entire screen, preferably with the console minimised.

Also, would it show up on a printscreen ?

相关标签:
4条回答
  • 2021-02-06 08:50

    Windows offers GDI/+, WPF, and DirectX (including Direct2D on Vista+).

    0 讨论(0)
  • 2021-02-06 08:55

    in windows you can use the GetDC-function. just a minimalistic example:

    #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;
    }
    

    but since Windows Vista it is very slow

    0 讨论(0)
  • 2021-02-06 09:01

    C++ has no notion of a "screen" and especially none of "graphics". The functionality needed is provided by your operating system. On many systems you will need a "Window" and draw on it. To do this portably, a library like Qt might help. A Windows solution was given by Oops. Maybe you want to use some OpenGL library, or Windows' DirectDraw/Direct3D from DirectX, in case you want to do some 3D stuff with your graphics.

    0 讨论(0)
  • 2021-02-06 09:05

    The (rather nice but not recently updated) graphics library anti-grain geometry has very simple bindings to display its demos on a variety of windowing systems, you could look at those for examples. But for anything much more involved you're probably talking about operating system specific libraries.

    0 讨论(0)
提交回复
热议问题