Newsgroup: it.comp.programmare.win32
Titolo: Programmatori, aiutatemi vi prego !!!!!

Sto scrivendo un programma in C che gestisce alcuni database e
(ovviamente) apre e chiude alcune finestre. Nel collaudarlo su di un
vecchio PC con Windows 98, 64 MB di RAM, succede che aprendo e chiudendo
la stessa finestra per un certo numero di volte (sempre lo stesso) i
caratteri delle finestre static,combo,... cambiano da TAHOMA (come le
avevo impostate io) al carattere di DEFAULT e per di più perdono anche il
colore.
Invece le finestre che avevano come font il Courier restano col Courier!
Su un altro PC con Windows XP e con 256 MB di RAM succede la stessa
identica cosa ma dopo, poniamo, il quadruplo numero di aperture (e
chiusure).
Ho solo constatato che più le finestre sono graficamente "pesanti" minore
è il numero di aperture (che resta sempre uguale a ogni tentativo)che
porta al difetto .
Secondo voi quale è la causa e quale può essere un rimedio?
E' da giorni che provo in tutti i modi ma non sono ancora riuscito a
trovare una soluzione!
Grazie a tutti per la pazienza nella lettura.
Gigio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Secondo voi quale è la causa e quale può essere un rimedio?
Secondo me stai avendo un gdi leak. Controlla di aver correttamente 
rilasciato le eventuali risorse gdi che allochi.
-- 
Luc

Secondo me hai ragione perchè effettivamente "perdo tutta la grafica".
Mi sapresti però dire come rilasciare le risorse e cosa intendi per
risorse gdi?
Ti ringrazio infinitamente.
Ciao e grazie ancora.
Gigio
Luc ha scritto:


-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 risorse gdi?
E' un argomento molto vasto, MSDN ti sarà più utile di me. Comunque col 
Task Manager (su NT/200x) puoi monitorizzare anche il numero di risorse 
allocate. 
-- 
Luc

 rilasciato le eventuali risorse gdi che allochi.
Concordo.
In pratica ogni volta che usi una funzione tipo CrateBrush, CreatePen,
CreateQualcheCosa devi ricordarti di fare la DeleteObject quando l'oggetto
non ti serve piů.
Guarda la documentazione relativa alla SelectObject.
Stefano "HappyMan" (Lake Maggiore - Italy)
-- 
The Personal Framework for Object Oriented Windows Development (Win32)
http://www.sgr.info
Email happyman69 (at) 
libero.it

 Guarda la documentazione relativa alla SelectObject.
Se sta veramente avendo un leak nella GDI vuol dire che alloca un font per
ogni finestra che crea O_o
Gigio, se stai facendo cosě, cambia sistema: usa lo stesso font per tutte
le finestre (penso si possa fare, no?)


 le finestre (penso si possa fare, no?)
Si, puoi mettere un handle globale, crei il font all'inizio, con la
WM_SETFONT lo setti ai vari controlli, alla chiusura usi la DeleteObject.
Il realtà non è che l'oggetto font sia più o meno pesante degli altri che
ho elencato, anche perchè basta che le finestre abbiano caratteri con
attributi diversi (corsivo, grandezza, grassetto, etc.) e sei costretto a
creare n font per le tue n finestre.
L'importante è:
1. non allocarne migliaia
2. cancellarli dopo averli usati
Ciao 
Stefano "HappyMan" (Lake Maggiore - Italy)
-- 
The Personal Framework for Object Oriented Windows Development (Win32)
http://www.sgr.info
Email happyman69 (at) 
despammed.com