一般情况下,按钮的绘制工作是由相同完成的,但是有时我们觉得系统绘制的效果太单调,想使自己的按钮与众不同,这时你可以选中控件的Owner draw属性。选择了这个属性后,系统便不再绘制该控件,而是当需要显示控件时,系统会发送WM_DRAWITEM消息给CButton类(对于SDK编 程,消息通常是发给父窗口)。对于其他控件,如ListBox,系统在发送WM_DRAWITEM消息前,还发送WM_MEASUREITEM消息,主要 是让你设置ListBox中每个项目的高度。与绘制无关的工作,如键盘、鼠标的操作,窗口的滚动等,仍然由系统负责,这样比自己从头编写一个控件要简单地 多,特别是对于ListView、TreeView这样的复杂的控件。要掌握好自绘控件,主要是对于绘图要熟悉,如果你还没有掌握绘图,那么先别学习自 绘。在VC的帮助中关于CButton::DrawItem部分有一个例子可以参考一下。
转自:http://hi.baidu.com/%CD%AC%D6%AE%D6%F7/blog/item/1af729c4682c7fcd38db49f3.html