
1)在按钮控件的属性页设置它的属性Style为1-Graphcal
2)给按钮控件的Picture属性设置图片
就可在VB的command控件上添加图片。
见下图红色方框部分:
实现方法:
1. 首先继承CButton模板类及CCustomDraw的模板类。
2. 在消息泵中,将CButton的自绘消息,加入至CCustomDraw消息链中,那样你就可以收到两个自绘通知了,他们是OnPreErase和OnPrePaint。
这两个自绘通知,会以函数的形式通知你,类似于虚函数:
我们会在OnPreErase里,执行自绘 *** 作,所以返回CDRF_SKIPDEFAULT,以让窗口跳过默认自绘。
3. 在OnPreErase里,我们需要获取按钮的四种状态:正常、热点、选中和禁用。默认是正常状态,所以我们只用处理:热点、选中和禁用。OnPreErase也会返回自绘的HDC图形描绘句柄,这也是我们需要用到的。
4. 判断当前按钮状态时需要注意:热点和选中这两个状态。当鼠标选中了按钮,那么按钮会返回CDIS_SELECTED的状态给你,但由于鼠标这时还停留在按钮上面,那么反馈的状态里面也包含了CDIS_HOT在里面。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)