Šta je novo?

Brisanje teksta sa DC-a

hwfanatic

Čuven
Učlanjen(a)
13.02.2002
Poruke
659
Poena
630
Kao tačno da obrišem, ili prebrišem - svejedno, tekst sa DC-a? Znači, napravio sam neki off-screen DC na kojem treba da iscrtam tekst metodom DrawText, ili sličnom. Zanima me kako da, kada dođe vreme za update, obrišem, prebrišem, popunim pravougaonik na kome je stajalo predhodno stanje texta...
 
Najprostije resenje je da ponovo ispises taj tekst na istim koordinatama, samo bojom pozadine...
 
A, šta ako je pozadina providna?
 
Rešio sam problem. Prešaltao sam se na TCanvas. Kada je već neko napisao klasu koje će da ispunjava grafički DC, što bih se ja pravio važan... TCanvas ima sve što mi treba.

Konkretno, za ovaj problem staviti Brush.Style na bsClear pa FillRect. As simple as that...

EDIT: Imam još jedan - nazovi - problem. Kako da "rezervišem" deo ekrana, u smislu da ne dozovlim ni jednoj drugoj aplikaciji da menja taj pravougaonik? Da li je tako nešto, uopšte, moguće uraditi?
 
Poslednja izmena:
Zaboravite moj poslednji post. Sada ide jedno ozbiljno pitanje...

Ok, uradio sam ono što me je zanimalo koristeći TBitmap klasu, i sve to koristeći visualclx pakovanje, rađe neko vcl, zbog podrške za unicode. Međutim, cela poenta ove pustolovine bila je ispisati rezultat na ekranu. E sad, da sam koristio TCanvas koje definisan u unit-u Graphics, to bih vrlo lako odradio recimo API pozivom BitBlt, jer ta klasa ima Handle tipa HDC. Ovako, kako sam koristio QGraphics, TCanvas klasa ima svojstvo Handle koje je tipa QPainterH = class(TObject). Čitao sam u dokumentaciji da je za crtanje na Linuxu zadužen taj izvesni QPainter, ali ja iskreno nemam pojma kako da primenim sada ovu klasu koju sam napravio. Sve što sam mislio da znam pada u vodu sa pojavom ove nove vrste hendla. :)

Molim za pomoć.
 
Funkciji QWidget_winId() das taj QPainterH handle i vratice ti underlying windows handle. Ako to radis pod linuxom, kao rezultat ces dobiti XID, odnosno handle/id prozora pod X-om.

Prouci malo vise QPainter posto je on zaduzen za crtanje. Takodje ima mnogo Qt funkcija koje definisu API vrlo slican WinAPI-ju. Za sve CLX unite si ionako dobio sourceove - svasta moze covek saznati samo kada malo proleti njima...
 
Hvala, pokušaću.
silverglider je napisao(la):
Za sve CLX unite si ionako dobio sourceove - svasta moze covek saznati samo kada malo proleti njima...
Potpuno se slažem. Ja mislim da sam većinu stvari o OP-u saznao baš iz Delphi source-a. :)
 
silverglider je napisao(la):
Funkciji QWidget_winId() das taj QPainterH handle i vratice ti underlying windows handle. Ako to radis pod linuxom, kao rezultat ces dobiti XID, odnosno handle/id prozora pod X-om.
Ne, nije to ono što mi treba... Možda QPainter_handle()? U svakom slučaju, cela ta stvarčica mi neće odraditi posao, jer mi ne odgovara da moram da je osvežavam (mnogo bre vuče procesorskog vremena, iako sam koristio off screen za crtanje, pa samo kopirao). Očigledno da celu stvar treba odraditi bna drugom nivou, samo nisam siguran da li posedujem umeća za tako nešto.

Aw, sigurno je neko nekada koristio MBM, gde imaš prikaz raznih parametara na ekranu šta god radio (znači nebitno da li igraš igru ili nešto drugo). Tako nešto i meni treba. Čak sam i nabavio dinamičku biblioteku mbm5osd, ali, naravno, nemam pojma kako se koristi. :)
 
Vrh Dno