Endurion
Sir Bugalot
Du hast ja ein Static zum Anzeigen. Das sollte den Stil OwnerDraw (Benutzerzeichnung! sch***-Übersetzer!) haben.
Das erledigst du innerhalb OnInitDialog bei einem Dialog oder OnCreate bei einem normalen Fenster.
meinStatic.ModifyStyle( 0, SS_OWNERDRAW );
Trenne das Laden und das Darstellen (ein CBitmap als Member, wo die einzelnen Bilder reingeladen werden können). Die CBitmap in deiner Dialog-Klasse als Member einsetzen.
CBitmap m_Bitmap;
Das Laden läuft ja genau gleich: m_Bitmap.LoadBitmap.
Damit nach einem Ladevorgang die Bitmap direkt angezeigt wird, einfach m_meinStatic.Invalidate();
Lass dir vom AppWizard bzw. Klassenassistenten eine OnDrawItem von der Static anlegen. Dort packst du die reine Darstellung rein.
Das sollte eigentlich funktionieren.
Das erledigst du innerhalb OnInitDialog bei einem Dialog oder OnCreate bei einem normalen Fenster.
meinStatic.ModifyStyle( 0, SS_OWNERDRAW );
Trenne das Laden und das Darstellen (ein CBitmap als Member, wo die einzelnen Bilder reingeladen werden können). Die CBitmap in deiner Dialog-Klasse als Member einsetzen.
CBitmap m_Bitmap;
Das Laden läuft ja genau gleich: m_Bitmap.LoadBitmap.
Damit nach einem Ladevorgang die Bitmap direkt angezeigt wird, einfach m_meinStatic.Invalidate();
Lass dir vom AppWizard bzw. Klassenassistenten eine OnDrawItem von der Static anlegen. Dort packst du die reine Darstellung rein.
Code:
void CMeinDialog::OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct )
{
if ( nIDCtl == ID_MEIN_STATIC )
{
HDC hdcImage = CreateCompatibleDC( lpDrawItemStruct->hDC );
HBITMAP hbmOld = ::SelectObject( hdcImage, m_Bitmap );
BitBlt( lpDrawItemStruct->hDC, 100,100, 400, 400, hdcImage, 0, 0, SRCCOPY );
SelectObject( hdcImage, hbmOld );
DeleteDC( hdcImage );
return;
}
}
Das sollte eigentlich funktionieren.