当在自绘一个控件时,比如自绘一个CMyButton的时候,在DrawItem()中改变了button的颜色,但是在程序执行时,DrawItem()函数并没有被执行,原因在于按钮的类型并不是BS_OWNERDRAW,所以我们需要把它改为“所有者绘制”。
解决方法:
可以重载一个PreSubclassWindow()函数,在该函数中调用ModifyStyle()函数来设置类型,比如:
void CMyButton::PreSubclassWindow()
{CButton::PreSubclassWindow();
ModifyStyle(0, BS_OWNERDRAW);
}
本文介绍了如何通过修改样式为BS_OWNERDRAW来自绘CMyButton控件,使其能够在DrawItem()函数中改变颜色。文中提供了具体的实现代码。

1658

被折叠的 条评论
为什么被折叠?



