[ bobby63 @ 16.04.2007. 13:15 ] @
| Vec duze vreme pravim jedan program, tacnije vrstu video igre. Za neke delove koji treba vrlo brzo da se pomeraju po ekranu koristim BitBlt a za sporije stvari Gdi.
Program je sada skoro gotov ali svaki put kad neka druga aplikacije predje preko tog prozora ili preuzme focus sve sto je iscrtao BitBlt i Gdi se brise.
Znam da je ovo lako resivo u VB6 ali kako da ga resim u .NET? |
[ mmix @ 16.04.2007. 14:31 ] @
GDI+ ne pamti paint operacije i refresh nije automatski, tvoja aplikacije ce dobiti WM_PAINT poruku ako je deo tvog prozora vizuleno "unisten", na tebi je da regenerises sadrzaj. Ovo pod uslovom da ne koristis desktop GDC handle, onda neces dobijati nikakve poruke, moraces sam da pratis sta se desava (pazi takodje da od Vista-e korisnje desktop DCa nije pozeljno posto nije kompatibilno sa Aero funkcijama Viste)
[ bobby63 @ 17.04.2007. 10:34 ] @
Ako sam dobro razumeo, treba da pratim da li aplikacija izgubila fokus pa da u tom slucaju opet iscrtam sve sto treba da bude na ekranu?
[ mmix @ 17.04.2007. 14:29 ] @
Ne, moras da pratis WM_PAINT poruke u "prozoru" po kome skrabas tj. prozoru ciji GDC is pribavio da bi ga koristio u GDI+ funkcijama (btw, bitblt je takodje GDI+ operacija). posto nisi spomenuo po cemu "skrabas", ne mogu da ti dam konkretan primer. Ajd malo vise informacija..
[ bobby63 @ 20.04.2007. 10:43 ] @
Crtam uvek po PictureBox-u, tj po vise njih.
BitBlt koristim za grafiku koja treba brzo da se krece po ekranu a Gdi za text, linije i grafiku tog tipa.
Primer bi mi mnogo pomogao posto mi nije najjasnije odakle da pocnem sa WM_PAINT, unapred hvala.
Koristim i directX za pustanje video sekvenci i SDL .net za zvuk ali sa njima nemam nikakvih problema.
[Ovu poruku je menjao bobby63 dana 20.04.2007. u 12:00 GMT+1]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.