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

Résolu
vincesfire Messages postés 4 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 avril 2005 - 10 avril 2005 à 13:42
vincesfire Messages postés 4 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 avril 2005 - 10 avril 2005 à 19:06
(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

swinteur Messages postés 7 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 10 avril 2005
10 avril 2005 à 14:52
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 :)
3
vincesfire Messages postés 4 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 10 avril 2005
10 avril 2005 à 19:06
MERCI pour ce post c'était la solution parfaite a mon probleme....


Merci encore

vincesfire
0