2017-06-08 2 views
1

Ich versuche, eine Bitmap in ein CStatic Steuerelement zu laden. In meinem Dialog habe ich ein CStatic-Steuerelement, auf das ich mich unter _myStatic beziehen. In meiner OnInitDialog Methode für den Dialog schließe ich das Steuerelement an diese Variable an und ich modifiziere den Stil zu SS_BITMAP durch _myStatic.ModifyStyle(0,SS_BITMAP);. Die Zeile danach habe ich _myStatic.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)));, aber die Bitmap wird nicht in der CStatic angezeigt. Fehle ich einen Schritt in diesem Prozess? Die Bitmap ist in meinen Ressourcen definiert.Eine Bitmap in ein CStatic-Steuerelement laden?

+0

Haben Sie 'UpdateWindow()' aufgerufen? Einige Eigenschaften eines Fensters werden zwischengespeichert und deren Änderung erfordert möglicherweise den Aufruf von 'UpdateWindows()', um die zwischengespeicherten Werte zu aktualisieren. –

+0

Haben Sie überprüft, dass 'LoadBitmap()' kein NULL-Handle zurückgibt? Haben Sie das gleiche Problem mit 'LoadImage()'? Sie sollten das trotzdem verwenden, da 'LoadBitmap()' veraltet ist. –

Antwort

1

Sie sollten dem LoadBitmap-Aufruf ein nicht-NULL-Argument übergeben. Stellen Sie sicher, dass das effektive SetBitmap-Argument nicht NULL ist.

_myStatic.SetBitmap(::LoadBitmap(
    _AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_BITMAP1))); 
Verwandte Themen