Conditional Formatting can do this
Have your button perform a script that does what you need and include a step that modifies the value of a global variable such as:
Set Variable [$$ButtonSelect ; Value: 3 ] //you might use different numbers to identify different buttons on your layout.
Then you can use:
$$ButtonSelect = 3
as the expression in the conditional format to specify a different fill color.
Thanks. Is there a more direct way in FM12?
Not as far as I know. You can specify appearance options for when you hover the mouse over it and for when you click it, but the "pressed" appearance options will disappear when you release the mouse button--so a conditional format remains your simplest approach here. (A calcualtion field that returns the contents of different container fields--each filled with different color rectangles or other graphics is the "old school" method we used to use before we had conditional formatting--still useful in IWP settings--but it's more complex to set up, not less.)