I don't believe it's possible. I think you have to make it owner draw to change it. I struggled with this problem myself, and ended up using statics and the WM_CTLCOLOR message and detecting WM_LBUTTONDOWN instead.
Have you tried looking at the CColorButton class that is posted on here somewhere (just search for the class name). I am using it, acts perfectly except for in one location. The only drawback is having the owner draw property set on the button.