The recommended approach is to try to find some property of the control (window style etc) as Identified by the Accessible Spy tool, that changes when the state of button is modified (Window Style is candidate #1).
If nothing appropriate is found through SPY, then the next possible option is to use a bitmap comparison (even BWBitmap property may be used for that). "Verify" button may be used to record corresponding snippet.
Now the tricky part is how to make a "Verify" for situations like 'Mouse over', 'Mouse down' etc. Our recommendation is to write a loop taking object BWBitmap and saving to file with interval 1-2 seconds and saving it to a file s1, s2, ....
If BWBitmap does not show appropriate difference (BW makes an image as 2-bit TIFF appropriate for OCR), then colored .Bitmap property may be used. With this approach one should have a list of reference bitmaps to use for actual verification (or any other operations).
The attached code illustrates this approach.