Bonjour a tous,
Voila je travail sous microsoft visual studio .Net 2003, je crais un
projet de type
MFC application et ma classe de base est
CFormView.
J'ultilise des objets de la ToolBox comme "List Control" par exemple.
J'ai dut changer le font de ma fenetre. Pour cela j'ai utilisé le
WM_ERASEBKGND (comme conseille sur des sites) et je fais :
BOOL CbackgroundView::OnEraseBkgnd(CDC* pDC)
{
// Fixe une brosse avec la couleur de fond choisie
CBrush BkClrBrush(RGB(0, 0, 0));
// Sauvegarde l'ancienne brosse.
CBrush* pOldBrush = pDC->SelectObject(&BkClrBrush);
CRect rect;
pDC->GetClipBox(&rect); // récupère la zone a effacer.
pDC->PatBlt(rect.left, rect.top, rect.Width(),rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);// restitue l'ancienne brosse
return true;
}
Ca marche tres bien, le probleme étant le rafraichissement de mes
objets generés par ma tool box. Des que l'on redessinne un objet du
paint (appel d'un Invalidate(), redimenssionement de la fenetre, figure
géométrique comme un carré dessinné dans le paint... ) le background
(noir dans mon cas) est comme redessinné par dessus mes objets de
toolbox ce qui donne un mauvais rafraichissement. Dans le cas ou l'on
redessinne assez souvent des objets ca devient n'importe quoi, ca
clignote beaucoup trop, ce n'est pas présentable.....
1- Est ce que j'utilise la bonne methode pour mon font d'ecran?
2- Est ce que vous comprenez ce que je raconte?
3- Y a-t-il une solution pour mieux gérer le rafraichissement?
4- Peut on changer la couleur du font d'un List Control, le mettre de
la meme couleur que le font noir et la police blanche, ainsi le
rafraichissenent passera mieux.
Merci
ps : désolé pour les accents, je suis en angleterre sur un clavier qwerty.
Cyril