2009-01-09 7 views
1

Merci beaucoup pour votre aide, cela m'a dérangé pendant quelques jours. J'utilise Windows Vista et j'écris mon programme en C++ en utilisant une API Windows directe (pas de MFC).Articles de menu Flicker lors du redimensionnement

Lorsque je redimensionne ma fenêtre, les éléments du menu clignotent. Ma classe de fenêtre n'utilise pas CS_HREDRAW ou CS_VREDRAW. J'utilise le double tampon pour la ZONE CLIENT, de sorte que la zone client ne scintille pas, seulement le menu sur la zone non-client.

Maintenant, je peux obtenir ce pour disparaître en manipulant WM_NCPAINT moi-même, mais je ne veux vraiment pas gérer tout le dessin de la zone non-client. Je gère également WM_ERASEBKGND, mais cela n'aide que pour la ZONE CLIENT. Je ne sais vraiment pas comment résoudre ce problème. J'ai recherché google abondamment, et avoir lu et essayé tout

http://catch22.net/tuts/flicker

a suggéré. Merci encore vous les gars. J'espère que vous pouvez m'aider à comprendre pourquoi mes éléments de menu clignotent (mais pas la barre de menu, ni les bordures, ni la barre de titre de la fenêtre).

Répondre

2

Je suis heureux de dire que j'ai résolu le problème! Je passe simplement WS_EX_COMPOSITED à la création de la fenêtre avec la barre de menu, en utilisant CreateWindowEx()! Fonctionne bien, et prend également soin du scintillement des fenêtres de l'enfant. Je pensais que je partagerais ça avec vous, juste au cas où vous expérimenteriez le même scintillement agaçant.

Questions connexes