Как нарисовать на экране в C ++? - PullRequest
6 голосов
/ 05 июня 2010

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

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

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

[редактировать]

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

Ответы [ 4 ]

8 голосов
/ 05 июня 2010

в окнах вы можете использовать функцию 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 он очень медленный

4 голосов
/ 05 июня 2010

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

2 голосов
/ 05 июня 2010

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

2 голосов
/ 05 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...