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

 C++ Discussion :

fond d'un static text transparent, mais l'ancienne valeur reste affiché


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 81
    Points : 50
    Points
    50
    Par défaut fond d'un static text transparent, mais l'ancienne valeur reste affiché
    Bonjour à tous, je ne pense pas que mon titre soit bien clair, et je vais essayer d'exposer mon problème au mieux.
    J'ai créé un contrôle static où j'affiche du texte, et j'ai rendu transparent le fond avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    case WM_CTLCOLORSTATIC:
    {
        if ((HWND)lParam == hStatic)
        {
            SetBkMode((HDC)wParam,TRANSPARENT);
    	return (LRESULT)GetStockObject(HOLLOW_BRUSH) ;
        }
    }
    Le problème est que quand je change le texte (avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetWindowText(hStatic,texte);
    ), l'ancien reste affiché:

    Nom : Image1.jpg
Affichages : 141
Taille : 587 octets puis je change en "1%" et j’obtiens ça:Nom : Image2.jpg
Affichages : 163
Taille : 581 octets

    Pouvez-vous m'expliquer comment faire pour effacer l'ancien texte, ou me rediriger vers un autre sujet ?
    Je précise que j'ai déjà essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetWindowText(hStatic,"        ");
    .

    Cordialement,
    Simac

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Je ne connais pas ta bibliothèque, mais puisque le texte est transparent, il n'y a pas de blanc qui puisse effacer ce qui est en dessous.

    La solution, c'est (selon la bibliothèque):
    • marquer la zone comme dirty
    • redessiner ce qui est en dessous
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    Bonjour, et merci pour votre réponse ! (Au passage, désolé pour le temps de réponse, mais ayant une connexion internet quelque peut défaillante...)

    J'utilise l'API WIN32, avec Dev-C++, et aujourd'hui, j'ai essayé l'option "Support des thèmes de Windows XP", qui a tout résolu ! Non seulement le graphisme est plus élaboré (boutons à angles élimés, progress bar digne de ce nom...), mais en plus le texte est entièrement actualisé!

    Je vous remercie encore de votre réponse

    Cordialement,
    Simac

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Cette option m'inquiète...
    Es-tu certain d'utiliser une version récente de cet EDI?
    Parce que le build classique de dev-cpp utilise un compilateur périmé

    Par ailleurs, comptes-tu vraiment faire un programme pour un OS périmé?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    Bonjour, effectivement, j'utilise la version 4.9.9.2 de Dev-C++, version datant de 2005, qui donc n'est plus fraiche du tout.

    Pour la programmation sous Windows XP, c'est que passer sous un autre OS n'est pas forcément très utile (tant que ça marche...), et pas forcément dans mon budget non plus ^^.

    Cordialement,
    Simac

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Du coup, il faut voir que ton compilateur est profondément sous optimal, et pas du tout au fait des normes récentes.

    Je t'invite à opter pour un choix plus moderne: soit visual C++ <je sais plus combien> express, rapide à installer, mais pas évident à configurer, soit mingw et (code::blocs ou eclipse)
    A moins de chercher le build récent de dev-c++, mais je ne sais pas où le trouver, et ce qu'il vaut (dev-c++ est une continuation de devcpp)

    Il te reste aussi la solution d'avoir une machine virtuelle avec linux, ou un double boot, mais c'est un peu plus délicat à mettre en place sans risque.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par leternel Voir le message
    visual C++ <je sais plus combien> express, rapide à installer, mais pas évident à configurer
    Le dernier est le 2013, qui est vraiment excellent.
    Quant à la configuration... de quoi parles-tu ? Tu n'as besoin de rien toucher pour que ça marche très bien. La "configuration" par défaut permet de travailler aisément.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    La "configuration" par défaut permet de travailler aisément.
    Sauf qu'elle n'a pas de bouton "start without debugging", il faut aller chercher l'option dans le menu. Ceci est la cause de plus de threads "help mon programme console disparait" que tout autre facteur.

    Le bouton était présent par défaut dans Visual 6, qui a eu l'idée géniale de le supprimer pour (ou avant) 2005?!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Mué, m'enfin quand tu programmes, tu as dans 99% des cas besoin d'attacher le debugger. Donc l'abscence de ce bouton ne gène en rien.
    Et les threads "help mon programme console disparait" seraient juste déplacés non pas à l'utilisation d'un IDE mais au cas où la personne lance le programme depuis son OS.

    Btw, sur VS2013 justement, le bouton est on ne peut plus proche dans les menus Nom : VS.png
Affichages : 146
Taille : 3,6 Ko

    Mais tous ceux concernés par le "problème" dont tu parles, qui n'en est pas un pour moi, ne savent pas la différence entre ces 2 boutons.

    Je viens de passer 5mn à chercher l'équivalent sur C::B (8.02, oui c'est vieux mais je l'utilise plus), sans succès.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    par configuration, je parlais des réglages des options de compilations, mais j'ai un biais, je n'ai jamais travaillé sur les derniers (compilateur déterminé par le job...)
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Les options de compilation par défaut de Visual sont pas mal. Pour commencer, les warnings sont activés par défaut, ce qui est plus que je peux en dire de certains compilos ou IDEs (comme le bon vieux Dev-C++)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Tableau en fenêtre, fond transparent mais texte aussi
    Par cristelle1986 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/06/2014, 10h31
  2. rendre l'arrière plan de static text transparent
    Par Marie_7 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/12/2012, 22h19
  3. Rendre un objet Static Text transparent
    Par Mr Strummer dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 01/06/2007, 16h10
  4. Réponses: 6
    Dernier message: 25/01/2006, 15h19
  5. Réponses: 4
    Dernier message: 23/06/2004, 15h30

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