2010-06-05 19 views
6

Jak narysować coś na ekranie? nie okno konsoli, ale cały ekran, najlepiej z minimalną konsolą.Jak narysować na ekranie w języku C++?

Co więcej, czy pojawi się na ekranie? Co chcę zrobić, to stworzyć coś w rodzaju warstwy na górze ekranu, którą tylko ja i moja aplikacja znamy, ale nadal możemy korzystać z aplikacji jak zwykle.

Oto przykład: Załóżmy, że chcę 2 żółte kwadraty 5 na 5 pikseli, pojawiające się na środku ekranu na górze wszystkich innych aplikacji, niewymienialne i niewidoczne dla ekranu drukowania.

[Edytuj]

Zapomniałam wspomnieć, że używam programu Visual Studio 2010 na Windows XP.

+2

W jakim systemie operacyjnym? – bmargulies

+1

Więcej kontekstu na temat tego, co próbujesz osiągnąć, może być przydatne tutaj. – Thanatos

+0

Wygląda na to, że robisz złego trolla, uniemożliwiając zamknięcie aplikacji. : D –

Odpowiedz

6

w oknach można użyć funkcji GetDC. tylko minimalistyczna przykład:

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

ale od Windows Vista jest bardzo powolny

+2

Użyj Direct2D w systemie Windows Vista. – Puppy

+0

Tak, działa, ale pojawia się na ekranie wydruku: P Zastanawiam się, czy istnieje sposób na uczynienie go niewidocznym dla dowolnego przechwycenia ekranu. – Kesarion

+0

Hej, jak mogę zmienić kolor? :RE. – JSideris

4

C++ ma pojęcie "ekranu", a zwłaszcza żaden "grafika". Wymagana funkcjonalność jest zapewniona przez system operacyjny. W wielu systemach będziesz potrzebował "okna" i narysuj na nim. Aby to zrobić przenośnie, biblioteka taka jak Qt może pomóc. Rozwiązanie systemu Windows zostało wydane przez Oops. Może chcesz użyć biblioteki OpenGL lub DirectDraw/Direct3D systemu Windows z DirectX, na wypadek gdybyś chciał zrobić trochę grafiki 3D z twoją grafiką.

+0

Kolejna wieloplatformowa biblioteka graficzna: http://pl.wikipedia.org/wiki/Simple_DirectMedia_Layer –

2

(raczej ładna, ale nie ostatnio zaktualizowana) biblioteka graficzna anti-grain geometry ma bardzo proste wiązania do wyświetlania swoich demonstracji na różnych systemach okien, można na przykład spojrzeć na te okna. Ale o wiele bardziej zaangażowani prawdopodobnie mówisz o bibliotekach specyficznych dla systemu operacyjnego.

2

Windows oferuje GDI/+, WPF i DirectX (w tym Direct2D na Vista +).

+0

Czy możesz pokazać przykład korzystania z tych bibliotek? – Hydro

Powiązane problemy