Как потянуть для экранирования в C++?

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

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

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

[Править]

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

6
задан Kesarion 5 June 2010 в 19:29
поделиться

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

8
ответ дан 8 December 2019 в 14:40
поделиться

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

4
ответ дан 8 December 2019 в 14:40
поделиться

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

2
ответ дан 8 December 2019 в 14:40
поделиться

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

2
ответ дан 8 December 2019 в 14:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: