Changement d'image ds un static en mfc...

[Résolu]
Signaler
Messages postés
4
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
10 avril 2005
-
Messages postés
4
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
10 avril 2005
-
(VC++6, MFC)

Bonjour, voila g un probleme pour mon projet de BTS,

g un static qui me donne le niveau d'une batterie. IL est vert qd la batterie est chargée et devient rouge qd la batterie passe en dessous des 10%.
La couleur verte est la couleur par defaut et qd la charge passe en dessous des 10, au lieu d'avoir une image rouge g une image noir avec un "T" à l'interieure.
Voici le code:

if(AccuCPU<=10 || AccuExt<=10)
{
CStatic *set=(CStatic*) (GetDlgItem(IDC_Alarm));


HBITMAP hbitmap;
hbitmap = LoadBitmap(0,MAKEINTRESOURCE(IDB_BITMAP4));
set->SetBitmap( hbitmap);
}

Pourriez vous me donner des éléments de réponse pour corriger cette erreure??
Ou mm pour les plus gentil la réponse ;-)
Au fait les deux images appelées sont des bitmap de mm taille qui ont été crées lors de la création du mfc.
Merci d'avance.
N'hesitez pas mm si ce n'est pas grand chose.
Merci encore

vincesfire

2 réponses

Messages postés
7
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
10 avril 2005

Alors moi j'avais le meme probleme pour changer des images mais dans un thread mais sa marchera ici je pense!

je devais changer des diodes de controle en vert ou rouge.

Bon je pense que sa devrai marcher si tu fais un peu comme cela :



CBitmap Vert;

CBitmap Rouge;

CStatic * CS;

CStatic * CS1;



Vert.LoadBitmap(IDB_BITMAP1);

Rouge.LoadBitmap(IDB_BITMAP2);



CS = reinterpret_cast<CStatic *>(GetDlgItem(IDC_Image1));

CS1 = reinterpret_cast<CStatic *>(GetDlgItem(IDC_Image2));



CS->SetBitmap(HBITMAP(Vert ou Rougee));

CS1->SetBitmap(HBITMAP(Vert ou Rouge));





a ton code cela donnerai :

//je sais pas quel couleur tu dois charger, donc je crois que c est rouge donc sa donnerai sa

{


CBitmap Rouge;


CStatic * CS;


Rouge.LoadBitmap(IDB_BITMAP4);

CS = reinterpret_cast<CStatic *>(GetDlgItem(IDC_Alarm))
;



if(AccuCPU< =10 || AccuExt<=10)


CS->SetBitmap(HBITMAP(Rouge));


}



Voilà j'espere que sa marchera :)
Messages postés
4
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
10 avril 2005

MERCI pour ce post c'était la solution parfaite a mon probleme....


Merci encore

vincesfire