il y a un WM_SIZE, un WM_PAINT (normal), un WM_ERASEBACKGROUND. donc si tu fais un simple BitBlt(), le fond va être effacé, puis ton image affichée par dessus, d'où le scintillement : deux affichages au même endroit en un temps très court. pour l'éviter, tu peux :
* surcharger WM_ERASE... et ne pas effacer l'endroit où est l'image. pas très propre.
* changer WM_ERASE... et WM_PAINT en un 'écran virtuel' : tu fais toutes les opérations nécessaires en mémoire, tu blittes d'un coup le résultat -> plus de scintillement. regarde du côté de CreateCompatibleDC() & co.
(au passage, WM_SIZE est juste une notification pour que tu puisses mettre à jour ton applic : par exemple si tu affiches du texte aligné à droite de ta fenêtre, il faut updater ses coordonnées).