To avoid multiple stacked buttons, you can use the BackColor and the Highlight color along with PLCAddressHighlight.
To invert a Boolean value simply precede the address with "NOT ". For example, the tag name Opened would become NOT Opened.
As for expressions, AdvancedHMI doesn't support expression in the PLCAddress properties. It would be easier to do this in the PLC. If you wanted to pursue it in AdvancedHMI, the best technique is to use a DataSubscriber2 to subscribe to the 2 values, then handle the DataChanged event to put the values in local variables, then push the result into a property such as Visible or Highlight.