WinAPI button SetImage

Thomasio

Erfahrenes Mitglied
Nachdem meine transparenten Eingabefelder jetzt prima funktionieren (danke nochmal für die Tipps im anderen thread) bin ich jetzt bei buttons, bzw. deren Aussehen

Was ich gerne machen würde ist ein button mit einem Hintergrundbild, statt dem standard Windows grau

ich mache also:

Code:
myButton = CreateWindow(
                                         "button", NULL,
                                         WS_CHILD | WS_VISIBLE | BS_MULTILINE,
                                         0, 0, 100, 100,
                                         hwnd, NULL,
                                         hinstance,
                                         NULL
                                        );

Bei MSDN habe ich diverse Sachen gefunden, aber ich werde nicht schlau draus
Soweit ich es verstanden habe müsste ich "nur" eine Resource mit der bitmap definieren und dann

SendMessage(myButton, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)myButtonBitmap);

aber entweder habe ich das völlig falsch geschrieben, oder es fehlt noch was anderes, der button bleibt jedenfalls grau

Kann mir jemand weiter helfen?
 
Möglicherweise kann es daran liegen, daß du den Stil BS_BITMAP nicht gesetzt hast. Ich hab' da allerdings keine eigenen Erfahrungen.
 
Laut MSDN, ergeben die Angaben aus style und setimage in ihrer Kombination die Darstellung, wobei style bs_bitmap plus setimage nur die Grafik anzeigt, aber nicht den Text des Buttons, während setimage alleine, ohne bs_bitmap im style anzugeben Grafik und Text anzeigen sollte

Ich habe mittlerweile etwas herumprobiert und bekomme mit bs_bitmap im style die Grafik teilweise angezeigt, muss dabei aber auch noch einige weitere Dinge beachten, wobei ich noch nicht herausgefunden habe, welche genau das sind, vor allem deswegen, weil mit bs_bitmap im style der Text des Buttons tatsächlich nicht angezeigt wird, für mich also sinnlos ist

Darüber hinaus bringe ich es nicht fertig, dass der Rahmen des Buttons verschwindet, selbst mit BS_FLAT hebt sich der Button immer von der Umgebung ab und hat einen dünnen Rahmen
Die Methode im WM_CTLCOLORBTN die richtige Bitmap zurückzugeben (wie ich das im vorherigen thread mit den Eingabefeldern gelöst hatte) funktioniert auch nicht, bzw. ich habe anscheinend nicht herausgefunden wie
 

Neue Beiträge

Zurück