ownerdraw einer region zuordnen ..?
-
Mit dem Attribut BS_OWNERDRAW kann ma ja mittels BiBlt ne bitmap drüber legen.
Ich sehe folgendes Problem:
Wenn der Button Rund ist sieht man als Rest ringsherum ein graues Rechteck als HintergrundIWe bekommeich die graue Randfarbe um den Button weg wenn dieser Rund ist?
-
http://www.c-plusplus.net/forum/viewtopic.php?t=96772&sid=a92f31e6274cc6ed17f180337e35afd6
Sieh mal hier nach, da ist code, um genau das zu erledigen...
-
?? Sieht für mich wie Ein Textbutton aus.
-
...ISt das so schwierig das keiner eine Idee hast? - ich probiers nochmal zu erklären.
ICh erstelle einen Button mit 100100 Pixeln Größe.
Darauf blitte ich eine Bitmap die 5050 groß ist.
Nun sieht man einen grauen Button mit einer Bitmap drauf. Ich will das man nur die Bitmap sieht.
-
Zum Beispiel indem du dem Button eine Region, die genau dem Bitmap entspricht, zuweist (SetWindowRgn(HWND, HRGN)); Also alles was man nich sehen soll, darf nicht in der Region liegen.
-
Habe ich gemacht. Der Button wird trotzdem geziegt. Das einzigste was sich geändert hat ist der event bereich des buttons. D.h. wenn ich mit der Maus in den region bereich klicke sendet der button nachrichten.
Weitere Vorschläge?
-
Ja, stimmt, dann hat die Buton Klasse wahrscheinlich den CS_PARENTDC Style. Du müsstest also irgendwie noch eine Clipping Region festlegen, über die der Button nicht hinauszeichnet.
-
Jip. Aber "irgendwie" hilft mir nicht weiter.
-
Also ein Buttoncontrol kann man eigenltich relativ simpel selbst erstellen, wenn es dir nicht zu viel Aufwand ist, bzw. wenn es nicht auch noch ein Edit, ... sein soll. Dann kannst du auch einen Hover-Effekt einbauen.
-
Kannst du bitte etwas konkreter werden? - Details
-
Ich meine eine eigene Button-Fensterklasse, die du dir mit RegisterClass registrierst und in deren WndProc du auf clicks reagierst und entsprechend neu zeichnest und die WM_COMMAND-Nachricht ans Parent sendest. Somit hast du die komplette Kontrolle über den neuen Button und sein Verhalten und kannst ihm also auch ne Region zuweisen, an die er sich hält. Für eine Button Klasse ist das wie gesagt noch nicht sehr viel Aufwand.
Es gibt auch einige Sourcecodes für eigene Buttons (mit belibigen Regionen) auf diversen Code-Seiten, wie www.Codeguru.com , www.CodeProject.com , etc.