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 :

[Problème] WM_CTLCOLORSTATIC et background


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [Problème] WM_CTLCOLORSTATIC et background
    Bonjour, je suis en train de développer un logiciel dans le cadre de mon stage et dans celui-ci, je dois changer la couleur de fond d'un champ texte.

    Pour cela, j'utilise:

    case WM_CTLCOLORSTATIC :
    if((HWND)lParam == hMes){
    SetBkMode((HDC)wParam, OPAQUEE);
    hBkColor = mes_in_zone == 1 ? hVERT : hROUGE; SetBkColor((HDC)wParam, mes_in_zone == 1 ? VERT : ROUGE);
    return (BOOL)hBkColor;
    }

    if((HWND)lParam == hMesAbsolue || (HWND)lParam == hPiecesMes){
    SetBkMode((HDC)wParam, OPAQUE);
    SetBkColor((HDC)wParam, JAUNE);
    return (BOOL)hJAUNE;
    }

    Sachant que JAUNE, hJAUNE, hVERT et hROUGE sont déclarés en variables globales et que je change le contenu de ces 3 champs à l'aide de la fonction SetWindowText à partir d'un autre THREAD.

    Au début, ça marche très bien mais il y a un moment où l'affichage se met à ne plus bien fonctionner (les boîtes de dialogues ne s'affichent plus correctement et deviennent inutilisables...).
    Je ne vois pas du tout d'où ça peut venir et j'espère que vous avez une idée.

    Merci d'avance.

  2. #2
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Et si tu enlèves ce code, as-tu vérifié que ca fonctionnait bien au bout d'un certain temps ?

    Apparemment il s'agit de fuites de mémoire ...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Oui, cela marche parfaitement.
    Je suis sûr que le problème vient de cette portion de code.
    J'ai déjà entendu parler du problème de fuite de mémoire, pourrais-tu être plus précis? D'où cela vient-il et comment régler le problème?
    J'avais lu que ce genre de problème venait du fait de créer les brush directement dans le return ( return (HBRUSH) CreateSolidBrush(COLOR); ) mais apparement non, car j'ai changé mon code afin d'éviter ceci...

    Merci pour ta réponse

  4. #4
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    ben justement le problème c'est que je ne vois pas ou serait l'erreur qui provoquerait une fuite mémoire ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ah ok, ça va pas être simple alors
    Merci pour ton aide, je vais essayer de chercher dans cette direction.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Après vérification, c'est bien un problème de fuite de mémoire (memory leak).
    Si je met en commentaire la portion citée dans mon premier message, la mémoire reste stable et si je la décommente, la mémoire ne cesse de diminuer...

    Si vous avez une idée pour corriger le problème, je suis bien évidemment preneur et je vous en serais reconnaissant car ça commence sérieusement à me prendre la tête (1 semaine que je cherche...)

    Merci d'avance

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    C'est bon, problème résolu, en fait j'avais pas mis les variables en global mais en define...
    Et dire que ça va bientôt faire une semaine que je me cassais les dents dessus...
    En tous cas, merci de ton aide basnifo

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

Discussions similaires

  1. [Kepler] Problème "Launch in background"
    Par sekaijin dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 20/02/2014, 10h18
  2. problème d'affichage background-image
    Par nico_4802 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/06/2010, 11h53
  3. problème avec un background:repeat-y
    Par boobs60 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 18/03/2010, 12h45
  4. Problème d'affichage background sous Firefox.
    Par myjinks dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/01/2008, 20h08
  5. [FLASH] [Flax] Problème de transparence background
    Par Ekimasu dans le forum Flash
    Réponses: 5
    Dernier message: 21/02/2006, 11h34

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