OT: progamovani pro win32

Miroslav Šinko sinkomiro@gmail.com
Pátek Prosinec 11 09:57:31 CET 2009


Skontrolujte si, ci pred DeleteObject (font, bmp, brush,...) vraciate
do DC povodny objekt.

T.j. takto:
hFnt=CreateFont...
hFntOld=(HFONT)SelectObject(hDC, hFnt);

... tu sa kresli

SelectObject(hDC, hFntOld);
DeleteObject(hFnt);

Ak nevraciate pred delete stary object, konci to presne ako popisujete.

miro


2009/12/11 Hynek Sladky <econf@centrum.cz>:
> Zdravim,
>
> mam problem s nalezenim chyby ve vlastni win32 aplikaci...
>
> Chyba se projevuje tak, ze pokud je aplikace spustena a stale se prekresluje
> obsah okna, po urcite dobe se nejak docasne zablokuje prekreslovani vsech
> oken, zacne se pouzivat jen systemovy font a po dalsi chvilce to vypada, ze
> se uz nic neprekresluje. Pokud svoji aplikaci ukoncim Alt+F4, tak vse zas
> funguje normalne.
> Myslim si, ze tam bud neco nezaviram nebo nevracim spravnou hodnotu, ale
> nemuzu najit, co by to mohlo byt. Kontroloval jsem parovost GetDC a
> ReleaseDC, pouzivam tam konstrukci DeleteObject (SelectObject (...,
> CreatePen (...))) nebo ...CreateFont () nebo ...CreateFill()
> Vsechny tyto konstrukce jsem prevzal z nejakych webovych stranek, tak nevim,
> jestli nemuze byt problem v nich.
>
> Diky za kazdy namet.
> Hynek Sladky


More information about the Hw-list mailing list