IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

SetLayeredWindowAttributes avec openGL sur Windows XP


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 28
    Par défaut SetLayeredWindowAttributes avec openGL sur Windows XP
    Salut,

    Avec mon appli multilangue, j'utilise une fenêtre OpenGL.

    Au dessus de cette fenêtre, j'ai mis des dialogues flottants, histoire de gérer une interface "aérienne".

    Pour faire joli, j'ai "cassé" ces dialogues, pour qu'ils ne présentent plus de bordures, titres .. etc .. et j'ai affecté des transparences avec SetLayeredWindowAttributes.

    Sous Vista et 7, ca marche très bien.

    Maintenant, sous XP, les parties transparentes de mon interface ne sont pas mises à jour correctement, elles considèrent que le fond est celui "derrière" le soft au lieu d'être la fenêtre OpenGL qu'elles couvrent.

    En gros, si ma fenêtre OGL affiche un fond bleu, au lieu d'être coupées en bleu et légèrement bleutés par la transparence, les dialogues sont rognés avec un fond blanc et mixées avec l'explorateur windows...

    Et cela seulement sous XP... Vista et 7 marchent super bien quelqu'un a une idée ?

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 28
    Par défaut
    Je précise d'ailleurs, c'est JUSTE sur ma fenêtre OpenGL. Si je réduis cette même fenêtre pour faire apparaitre une autre qui est purement GDI/MFC les transparences sont gérées parfaitement bien.

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par ThePiiX Voir le message

    Et cela seulement sous XP... Vista et 7 marchent super bien quelqu'un a une idée ?
    oui je me risquerais à une explication : l'interface sous Vista et 7 utilise l'accélération 3d ce qui n'est pas le cas avec XP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 28
    Par défaut
    Non ca m'aide pas.

    Par contre, j'ai pu tester plus en profondeur, et apparemment, c'est en définissant le style GWL_EXSTYLE a WS_EX_LAYERED que ca fait ca ...

    Si je le fait pas, la transparence n'est pas définie, l'interface n'est pas transparente, mais il n'y a pas d'artefacts d'affichage.

    Si je le fais mais que je lance pas la transparence ( avec SetLayeredWindowAttributes ) l'interface est pas dessinée du tout... elle n'est rafraichie que si l'utilisateur passe la souris sur les dialogues.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 28
    Par défaut
    J'ai pu voir aussi que si je désactive openGL, l'interface est bien transparente et correctement coupée ...

    Personne n'a le problème ?

    Un autre truc, est ce que c'est sur la fenêtre openGL ou sur les barres flottantes qu'il faut que je m'acharne ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2010, 21h42
  2. déterminer la taille de memoire vive(RAM) avec java sur windows
    Par ahmed.j2ee dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 25/09/2009, 11h03
  3. [phpMyAdmin] Utilisation de phpMyAdmin avec Apache2 sur Windows
    Par filiplarlibe dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/05/2009, 19h01
  4. CPU à 100% avec postgres sur windows
    Par djaih dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 29/05/2007, 18h45
  5. [débutant] OpenGL sur Windows
    Par shinkyo dans le forum OpenGL
    Réponses: 5
    Dernier message: 17/05/2006, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo