Как рисовать на экране в C++?

Как бы я нарисовать что-нибудь на экране ? не окно консоли, а весь экран, желательно с минимизированной консолью.

кроме того, он появится на печатном экране ? То, что я хочу сделать, это создать что-то вроде слоя поверх экрана, о котором знают только я и мое приложение, но все еще могут использовать приложения, как обычно.

вот пример: Допустим, я хочу, чтобы 2 желтых квадрата размером 5 на 5 пикселей появились в центре экрана сверху из всех других применений, unclickable и невидимый к printscreen.

[Edit]

Я забыл упомянуть, что я использую Visual Studio 2010 в Windows XP.

4 ответов


в 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 это очень медленно


C++ не имеет понятия о " экране "и особенно ни о"графике". Необходимая функциональность обеспечивается вашей операционной системой. На многих системах вам понадобится "окно"и рисовать на нем. Чтобы сделать это переносимо, такая библиотека, как Qt, может помочь. Решение Windows было дано Oops. Возможно, вы хотите использовать некоторую библиотеку OpenGL или DirectDraw/Direct3D Windows из DirectX, если вы хотите сделать некоторые 3D-материалы с графикой.


(довольно хорошая, но не недавно обновленная) графическая библиотека анти-выращивание зерновых геометрия имеет очень простые привязки для отображения своих демонстраций на различных оконных системах, вы можете посмотреть на них для примеров. Но для чего-то гораздо более сложного вы, вероятно, говорите о библиотеках, специфичных для операционной системы.


Windows предлагает GDI/+, WPF и DirectX (включая Direct2D на Vista+).