Razvijam kontrolu u C#.NET koja treba da prikazuje grafikone sa berze. Glavni problem je brzina iscrtavanja prilikom dolaska novih tikova sa berze.
U ekstremnim situacijama(otvaranje njujorske berze ponedeljkom) neki simboli "tikcu" na 4 mili sekunde.
Zahtev je da chart kontrola mora da prikaze ove tikove. Cretanje u GDI+ -u je suvise sporo. Zbog toga sam za neke stvari morao da pristupim
Windows API -ima. Predpostavio sam da ovde ima dosta iskusnih C++ programera koji su radili sa ovim API -ima.
Problem sam resio pomicu BitBlt funkcije, kojom kopiram deo slike prozora kontrole ekrana i pomeram ga na levo ili desno i na taj nacin ustedim do 50%
procesorskog vremena. Medjutim to nije dobro kada je chart kontrola preklopljena nekim drugim prozorom. BitBlt kopira i taj prozor.
Napravi memoriski DC pa na njemu crtaj chart a onda BitBlt kopiraj na screen DC na poziciju gde hoces. i BitBlt kopira samo source DC, to sto ti vidis kao drugi prozor je ja mislim sigurno isti prozor tj isti DC kao i tvoj chart samo nacrtan preko.
Na zalost nije mi dozvoljeno da drzim bitmape u memoriji. To bi bilo resenje ali bi uzimalo previse memorije. Diletanti koji ovo koriste su kao mala deca. Otvore
500 chart -ova pa kada se aplikacija zakoci ili pukne kazu: "Ovaj program je los. Necemo ga kupiti".