Mikä mahtaa olla ongelmana, kun en saa dialogissa olevaa bitmappia toimimaan oikein. Työn alla olevassa sovelluksessa käytetään bitmap-kontrollia näyttämään ohjelman tilaa. Lisäsin resurssieditorissa image-kontrollin dialogiin ja määrittelin sen bitmapiksi ja liitin siihen toisen kahdesta bitmapista (on/off). Ohjelman käynnistyessä ei kuitenkaan näy jälkeäkään bitmapista vaikka resurssieditorissa näkyykin valittu bitmappi. Olen kokeillut lisätä koodiin pätkän
CBitmap *pBMP = (CBitmap*)GetDlgItem(IDC_foo);
if (pBMP)
pBMP->LoadBitmap(IDB_fum);
mutta viimeinen rivi aiheuttaa invalid assertionin, nähtävästi GDI:n Attach-kutsussa (null-handle). Mitä pitäisi tehdä jotta saa tuon toimimaan oikein ?
J.
CBitmap *pBMP = (CBitmap*)GetDlgItem(IDC_foo);
if (pBMP)
pBMP->LoadBitmap(IDB_fum);
mutta viimeinen rivi aiheuttaa invalid assertionin, nähtävästi GDI:n Attach-kutsussa (null-handle). Mitä pitäisi tehdä jotta saa tuon toimimaan oikein ?
J.
Vastaukset 1
Vanhimmat
Oletan nyt että käyttämäsi Bitmap-kontrolli on "Picture"-kontrolli, eli se tulisi ladata tyyppiin CStatic. CBitmap-luokka vastaa Bitmap-resurssia joten et voi siihen ladata kontrollia.
CBitmap *pBMP = new CBitmap();
pBMP->LoadBitmap(IDB_fum);
CStatic *pStatic = (CStatic*)GetDlgItem(IDC_foo);
pStatic->SetBitmap((HBITMAP)pBMP->GetSafeHandle());