Salut tous le monde.
J'ai un projet simple composé d'une boite de dialogue.
celle-ci comporte une picture appelé IDC_AFF1 de type bitmap, comportant comme image de départ IDB_BITMAP2
j'ai défini une méthode associé a un bouton qui me permet de remplacé le bitmap courant de IDC_AFF1 par IDB_BITMAP8.
le code de la méthode est le suivant :
{
CBitmap B;
CStatic * CS;
B.LoadBitmap(IDB_BITMAP8);
CS = reinterpret_cast<CStatic *>(GetDlgItem(IDC_AFF1));
CS->SetBitmap(HBITMAP(B));
}
ce code fonctionnement correctement.
afin de rendre l'utilisation plus global, j'ai decidé d'utilisé une classe, pour permettre de créer des méthodes sans se préoccuper de l'interface.
definition d'une classe appele "CAfficheur", a la quel je passe l'ensemble des bitmaps que je désire afficher (ex : IDB_BITMAP8), ainsi que les pictures (ex : IDC_AFF1)
Ma classe comporte plusieur méthode:
CBitmap TableauBitmap;
int TableauConteneur;
HWND Pt;
// ces trois méthodes permette de passe les paramètres
// a la classe
void CAfficheur::SetBitmap(int EnsBitmap)
{ // passe le bitmap en paramètre
TableauBitmap.LoadBitmap(EnsBitmap);
}
void CAfficheur::SetConteneur(int EnsConteneur)
{ // passe le conteneur en paramétre
TableauConteneur = EnsConteneur;
}
void CAfficheur::SetParentWindows(HWND _Pt)
{
Pt = _Pt;
}
Les méthodes précedente sont initialisé dans OnInitDialog()
de la facon suivante.
AffDigitale.SetBitmap(IDB_BITMAP8);
AffDigitale.SetConteneur(IDC_AFF1);
AffDigitale.SetParentWindows(this->m_hWnd);
// utilisé pour l'affichage
void CAfficheur::AfficheDigit()
{
CStatic * leBouton;
leBouton = reinterpret_cast<CStatic *>(GetDlgItem(Pt, TableauConteneur));
leBouton->SetBitmap(HBITMAP(TableauBitmap));
}
Le programme compile bien.
Se lance normalement.
mais plante lors de l'appel de la méthode AfficheDigit()