Posted By: Jerry_III (Jerry III) on 'CZprogram'
Title: Re: Prekreslovani (was: MS v D4)
Date: Wed Sep 29 10:29:40 1999
> Takze chces rici, ze nekde za handlem GC (handle = jisty 'pointer' do
> interni struktury) je rekneme seznam informaci o invalidovanych
> regionech...?
Porad rychlejsi nez prekreslovat pokazdy cely okno ;)
> Jasne, ale muzes i invalidovat neco vlastniho sam pomoci napr.
> InvalidateRect nebo Te o to zadaji Wokna, kdyz neco nedokazi obnovit...
Samozrejme ze muzes ... resp. pokud chces mit jistotu, aby se ti prekreslila
konkretni cast okna tak dokonce musis ;) prave proto, ze windows neprekreslej
cast okna co neni zinvalidovana ...
> Ano, WM_PAIN navic ma ponekud velmi nizkou prioritu vybirani z poolu...
> Takze pokud jsem to spravne pochopil jedina cesta, jak prekreslit (a
> donutit okna, aby to na obrazovce skutecne provedli) cele okno s minimalni
> zatezi CPU je po 1. WM_PAINT udelat pouze Invalidaci okna, nastavit si
> priznak, ze priste to skutecne mam vykreslit a pri dalsi WM_PAINT zacit
> kreslit do DC? Nebo staci vykreslit patricne informace do DC, pak zavolat
> InvalidateRect na cele okno a je to?
Jedina cesta jak donutit windows aby te nechali prekreslit cely okno je:
1. InvalidateRect(GetWindowRect(hWnd)); // Timhle si cely okno zinvalidujes
2. UpdateWindow(hWnd); // Timhle si vynutis WM_PAINT
3. Obsluha WM_PAINT ... jestli to budes mit predem nekde pripraveny a tady to
jen vysypes nebo jestli to budes generovat az tady je vice mene putna ...
> Jo, o kompatibilite Win16 na Win32 pri dodrzeni MS zasad, ktere
> zverejnil
> by se daly napsat cele knihy...:-(((( (Napr. proc ani Win98 nemaji 32-bitove
> GDI, kdyz MS tvrdi, ze jiz Win95 jsou 32-bit systemem)? Vysvetlujte to
> zakaznikum, proc to ve WinNT funguje bez problemu, ale ve Win9X ne... a co
> tisk, to je kapitola sama pro sebe...
To bych taky rad vedel ... tedka me toci to, ze cely OLE je v UniCode a ja to
vsechno musim konvertovat do a z ANSI abych ty stringy moh vubec pouzivat na
win95/98 (treba kdyz si predavam klice v registry - RegOpenKeyExW na 95/98
proste neni)
> > Napis si takovej jednoduchej priklad - udelej si okno, a posilej si kazdou
> > sekundu WM_PAINT ... v obsluze WM_PAINT si dej beepnuti a pak to pust ...
> > kdyz nebudes mit nic invalidovanyho (treba tim, ze pres okno pretahnes
> jiny
> > okno) tak to bude zticha ;)
>
> Zajimava myslenka, urcite to vyzkousim, jinak nez akusticky to ladit
> asi
> nelze, coz?;-)
lze ale akusticky je to nejjednodussi ;))
> ..s usmevem a laskou jde vsechno lip, nezapominejte na to v zivote..
Presne tak ... a jak rikala moje matikarka - kdyz nejde o zivot jde o hovno ;)
> PaJaSoft
Jerry III
I kdybych vedel ze za pet minut zanikne svet, jeste bych si sel zkontrolovat
e-mail
http://jerryiii.home.sprynet.com/mica/index.htm