单选框到底有没有办法自绘?
今天弄单选框自绘,一开始都很顺利,也自绘了出来,不过发现一个严重问题,SetCheck无效,不论怎么SetCheck,GetCheck返回永远是0。
后来发现是这样的,我的单选框是CButton对象动态创建的,创建参数带了BS_AUTORADIOBUTTON|BS_OWNERDRAW,期望让父窗口完成自绘。问题就出在这里,BS_AUTORADIOBUTTON是0x9,BS_OWNERDRAW是0xB,而0x9|0xB = 0xB,也就是BS_AUTORADIOBUTTON|BS_OWNERDRAW = BS_OWNERDRAW,囧!
这样一来,BS_AUTORADIOBUTTON就等于没写,所以SetCheck就失效了,而如果用BS_RADIOBUTTON,与BS_OWNERDRAW一或,都变成复选框了,更囧!
所以没办法,只好继承了CButton,期望在OnPaint里面完成自绘,点击以后发现,默认的画圆圈是在OnPaint之后调用的,所以它画的那个圈就把我画的盖住了,还是囧!
那么,单选框到底有没有办法自绘?