2010-08-31 3 views
0

J'ai une couche (fenêtre semi-transparente) créée avec WS_EX_LAYERED et ajustée avec SetLayeredWindowAttributes (... LWA_ALPHA). Je dois le montrer et le cacher de temps en temps, mais depuis la dernière peau il y a des cas où l'image va être changée de façon significative. Mais SetWindowPos et ShowWindow montrent d'abord l'image précédente (probablement l'image tamponnée de la dernière fois) et après cela je vois une nouvelle image repeinte. Quelle est la meilleure façon d'invalider comme si il va être montré pour la première fois (donc pas de dessin de l'image en mémoire tampon précédente)Comment afficher correctement la fenêtre transparente cachée lorsque le contenu a changé

Merci

maxn

Répondre

0

jamais remarqué cela avant, ce peut être un artefact de votre pilote d'affichage vidéo.

Oui, vous pouvez y remédier. Une fenêtre en couches vous permet de contrôler l'opacité. Vous pouvez commencer avec bAlpha de SetLayeredWindowAttributes() à 0 et le modifier après le premier message WM_PAINT que vous traitez. Un fondu entraîné par une minuterie est un truc assez commun aussi.

+0

Répondu, bien que penser qu'il n'y aurait pas de réponses l'a résolu de la même manière) Je comprends pourquoi on ne pouvait pas le remarquer, ce n'est pas si souvent le contenu changerait sans intervention de l'utilisateur. – Maksee

Questions connexes