Как я потянул бы что-то на экране? не консоль, но весь экран, предпочтительно с минимизированной консолью.
Кроме того, это обнаружилось бы на printscreen? То, что я хочу сделать, создают что-то как слой сверху экрана, которые только меня и мое приложение знают и все же смочь использовать приложения, как обычно.
Вот пример: Скажем, я хочу 2 желтых квадрата 5 на 5 пикселей в размере, появляющемся в центре экрана сверху всех других приложений, неактивируемых по щелчку и невидимых для printscreen.
[Править]
Я забыл упоминать, что я использую Visual Studio 2010 на Windows XP.
в 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, если вы хотите сделать с вашей графикой какие-то трехмерные вещи.
Графическая библиотека anti-grain geometry (довольно хорошая, но недавно не обновлявшаяся) имеет очень простые привязки для отображения демонстраций на различных оконных системах, вы можете посмотреть на них в качестве примера. Но для чего-то более сложного вы, вероятно, обратитесь к библиотекам, специфичным для операционной системы.
Windows предлагает GDI/+, WPF и DirectX (включая Direct2D в Vista+).