Well, one way you could do it is if you have an event driven interface, put the DAQ read in a timeout event with a short timeout. The while loop wrapped around the event structure would have a shift register for holding the "tare" value. The output of the DAQ would drive two controls one for the raw reading and one the raw reading minus the value in the shift register.
A second event would be triggered on a value change of your Tare button. In that event, would be a local variable from the raw data indicator that the event would read to get the value of the indicator (which would be the last DAQ read) and write it to the shift register. Alternately, you could have a second shift register that always holds the last raw value read from the DAQ. In the Tare button value change event you would copy the data from that shift register to the one holding the tare value.
Mike...