2008-11-17 13 views
0

J'ai un écran avec 20 contrôles dessus. Je veux montrer tous les vingt, puis cacher seulement ceux qui ne correspondent pas à ce que je travaille.MFC, C++ Lors de l'affichage et de la dissimulation de ctrls sur l'écran, puis-je désactiver la peinture pendant un certain temps?

psudoCode. 
for each element 
    show element 

for each element in hide list 
    hide element. 

Mon problème est que, entre les boucles, l'écran peint. Ça a l'air très moche.
Je sais que j'ai vu cela fait mais pour la vie de moi je ne trouve pas ce code, ou même me souviens de quelle application j'avais vu ce code ..

Est-ce que quelqu'un sait comment suspendre la peinture pour un moment?

+0

Quelle fonction vous appelez pour cacher la ctrl/fenêtre? –

Répondre

2

Comme quelqu'un m'a suggéré de ne pas il y a longtemps, utilisez CWnd :: setRedraw

wnd.SetRedraw(FALSE) 
... // do your stuff with elements 
wnd.SetRedraw(TRUE) 
+0

ah, ouais tu as raison. trop longtemps depuis que j'avais utilisé MFC :) –

+0

Cela devrait être appelé pour chaque contrôle étant montré/caché. – Shog9

+0

Etes-vous sûr que cela doit être appelé pour chaque contrôle? – baash05