Bonjour,

Voici mon problème : je développe un logiciel en vc++ et je me retrouve confronté à un bug étrange. Le logiciel permet notamment le dessin de graphiques avec courbes, sur lesquelles il est possible de placer des curseurs, que l'on déplace avec la souris. Quand je déplace mon curseur, tout se passe bien, jusqu'au moment (aléatoire, mais après de 1-2min d'utilisation) où un bug graphique se produit : le scroller vertical se déplace sur le côté, les icones disparaissent, les menus apparaissent noircis, ...
Il se trouve que c'est une des fonctions createFont qui me retourne NULL dans le Draw du graphique, alors que les paramètres des fonts restent inchangés au cours des différents appels à la fonction Draw.

Je ne sais pas si ça peut aider, mais j'avais déjà eu un bug graphique similaire quand j'oubliais de faire des ReleaseDC, suite à des appels à GetDC. Voici un bout de code typique de création de font dans mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
taille = -MulDiv(taille, GetDeviceCaps(gDC->GetSafeHdc(), LOGPIXELSY), 72);
CFont * font = NULL;
HFONT hFont = NULL;

hFont = CreateFont ((int) (taille*_zoom), 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, PROOF_QUALITY, FF_DONTCARE, _titleFont);

assert (hFont != NULL);
font = CFont::FromHandle (hFont);
CFont * oldFont = gDC->SelectObject(font);

//Dessin

gDC->SelectObject(oldFont);
DeleteObject (hFont);
J'espère avoir été assez clair. Merci à ceux qui pourront m'aider.