Zu 1. Mit der WinAPI lässt sich das machen. Per Sendmessage_() kann man eine Nachricht an das Gadget senden, mit dem Inhalt, dass der Text zentriert sein soll. Den genauen Code dafür hab ich gerade nicht parat, aber such mal nach center oder so. Es ist zwar meist nicht direkt für Gadgets gedacht, lässt sich aber darauf anwenden. Vielleicht hat auch das Codearchiv was. Schau mal bei purearea.net vorbei.
2. Wie kann ich ein ImageButton als toggle setzen? Gibt es da auch ein Flag wie beim normalen Button, oder muss ich das per Software abfangen?
Ebenfalls könnte man das mit der WINAPI machen. Dazu hab ich auch die Syntax:
Code: Alles auswählen
SendMessage_(GadgetID(#gadgetID), #BM_SETSTATE, #True, 0)
Mittels dieses Befehls wird der Button auf gedrückt gesetzt. Jedesmal wenn du also auf dein ImageButton klickst, muss jetzt abgefragt werden, ob der Button gedrückt ist oder nicht, und dann muss eben gedrückt werden oder eben "losgelassen" werden. So kannst du dir einen eigenen Toggle-Button aus jedem solchen Gadget bauen. Etwa auch mit Toolbars und so.
Übrigends kannst du entweder eine eigene Variable einführen welche den Status des Buttons speichert, ob er also derzeit gedrückt ist oder nicht, oder den Status per SendMessage wieder abfragen. Diesmal anstelle von #BM_SETSTATE musst du #BM_SETSTATE nehmen und das #TRUE auf 0 stellen. Bekommst du dann als Rückgabewert des Sendmessage den Wert der Konstante #BST_PUSHED so bedeutet das, dass der Button gedrückt war. Andernfalls eben nicht.
Da musst du jetzt ein wenig rumbasteln dass es so passt wie es soll.