Bonjour, Je suis en MFC, je souhaite afficher une image de diode verte lorsque je clique su un bouton et une rouge a la place de la verte, lorsque je reclique sur le bouton. Mais lorsque je clique une nouvelle fois sur le bouton pour réafficher la verte, plantage au niveau du LoadBitmap. Je suppose que cela doit être du au fait que l'image est déjà chargée.
Le problème se pose aussi quand je ferme la fenêtre et que je la rouvre.
Savez vous comment faire une sorte de UnLoadBitmap ?
Voici mon code :
void CAutoDlg::Vert()
{
m_Vert.LoadBitmap(IDB_VERT);
CDC * pDC = GetDC(); //Obtient le contexte de dessin courant
CDC dcMemoire_V; //Crée un Contexte Mémoire
dcMemoire_V.CreateCompatibleDC(pDC); //Rend le contexte mémoire compatible avec le contexte d'écran
dcMemoire_V.SelectObject(&m_Vert); // Sélectionne l'image dans le contexte mémoire
pDC->BitBlt(50,18,40,40,&dcMemoire_V,0,0,SRCCOPY);
ReleaseDC(pDC); //Rend le contexte d'affichage au systéme
}
void CAutoDlg::Rouge()
{
m_Rouge.LoadBitmap(IDB_ROUGE);
CDC * pDC = GetDC(); //Obtient le contexte de dessin courant
CDC dcMemoire_R; //Crée un Contexte Mémoire
dcMemoire_R.CreateCompatibleDC(pDC); //Rend le contexte mémoire compatible avec le contexte d'écran
dcMemoire_R.SelectObject(&m_Rouge); // Sélectionne l'image dans le contexte mémoire
pDC->BitBlt(50,18,40,40,&dcMemoire_R,0,0,SRCCOPY);
ReleaseDC(pDC); //Rend le contexte d'affichage au systéme
}
Merci d'avance a toute personne pouvant m'aider.