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

Windows Discussion :

[API WIN32] Fond de fenêtre transparent


Sujet :

Windows

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut [API WIN32] Fond de fenêtre transparent
    Bonjour,

    J'essaie de créer une petite interface graphique en C avec la Win32 API.

    Mon problème est que je ne parviens pas à créer une fenêtre avec un fond tranparent. Je m'explique : dans ma fenêtre principale j'ai un control "C" défini par une fenêtre comprenant d'autres controles. Le control C n'a pas de "fond" défini par une bitmap ou quoi que ce soit. Il doit juste reprendre le fond de la fenêtre principale (qui a déjà des motifs...).
    Lors du premier affichage : pas de soucis, cela marche parfaitement, mais par la suite quand je modifie, déplace, ajoute, supprime des controles dans ma fenetre de mon control C, le fond du control C devient tout noir...
    Savez-vous comment dire au programme de recharger le fond de la fenêtre principale ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Essaie en rajoutant le style étendu WS_EX_TRANSPARENT à ton contrôle C.
    Mais si tu veux juste avoir un contrôle dont le fond est de la même couleur que le fond de la fenêtre parent, tu devrais plutôt dire à ton contrôle de récupérer la couleur de fond en envoyant au parent un message WM_CTLCOLORSTATIC.
    Et ensuite, faire un FillRect() avec la Brush retournée...

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    C'est à peu près ça !

    Comme ce n'est pas la couleur du parent que je voulais récupérer mais son image (une bitmap) j'ai trouvé cette petite fonction qui marche parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TransparentBlt (HDC hdcDest, int xDest, int yDest, int wDest, int hDest, 
       HDC hdcOrig, int xOrig, int yOrig, int wOrig, int hOrig, UINT crTransparent);
    Merci comme même !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier le thème d'une fenêtre avec l'API win32
    Par d'Oursse dans le forum Windows
    Réponses: 9
    Dernier message: 19/02/2012, 16h03
  2. Réponses: 5
    Dernier message: 28/07/2009, 22h21
  3. Réponses: 4
    Dernier message: 17/02/2009, 17h43
  4. API Win32 problème de fermeture de fenêtre
    Par Ano dans le forum Windows
    Réponses: 3
    Dernier message: 13/12/2006, 21h37
  5. Réponses: 2
    Dernier message: 13/09/2006, 10h22

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