当在自绘一个控件时,比如自绘一个CMyButton的时候,在DrawItem()中改变了button的颜色,但是在程序执行时,DrawItem()函数并没有被执行,原因在于按钮的类型并不是BS_OWNERDRAW,所以我们需要把它改为“所有者绘制”。
解决方法:
可以重载一个PreSubclassWindow()函数,在该函数中调用ModifyStyle()函数来设置类型,比如:
void CMyButton::PreSubclassWindow()
{CButton::PreSubclassWindow();
ModifyStyle(0, BS_OWNERDRAW);
}