由于从CButton类派生的按钮外观过于“简洁”,有时并不能满足我们的要求。
爱美之心人皆有之,何况按钮呼?
那么要如何才能做出一个漂亮的按钮呢?这就得求助与按钮的自绘功能。
所谓按钮的自绘,就是按钮的形状可以重新绘制。既然按钮的形状可以重新绘制,那岂不
正是 我们需要的。
下面简要的说一下圆形按钮的制作思路:
首先得让按钮具有自绘风格(ownerdraw),可以在按钮的属性里选上,也可以通过
PreSubClassWindow实现,后一种方法如下:
重写PreSubClassWindow,然后
void CCircleButton::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
CButton::PreSubclassWindow();
ModifyStyle( 0 , BS_OWNERDRAW );
}
按钮具有了自绘功能后,我们就可以重写DrawItem,在这个函数里完成按钮的彻底换装。
那么如何换装呢?当然啦首先得有漂亮的衣服啊(就是准备好一张大小合适圆形的位图),
然后根据位图的大小绘制按钮。
既然要绘制圆形按钮,当然按钮的形状就得是圆的。
首先获得位图的大小,然后根据位图大小设置按钮的大小并绘制对应的圆形。
最后创建一个位图画刷,刷一下那个圆形区域即可
详细代码请参看源码
没法上传文件啊!!
有需要的留下邮箱吧
爱美之心人皆有之,何况按钮呼?
那么要如何才能做出一个漂亮的按钮呢?这就得求助与按钮的自绘功能。
所谓按钮的自绘,就是按钮的形状可以重新绘制。既然按钮的形状可以重新绘制,那岂不
正是 我们需要的。
下面简要的说一下圆形按钮的制作思路:
首先得让按钮具有自绘风格(ownerdraw),可以在按钮的属性里选上,也可以通过
PreSubClassWindow实现,后一种方法如下:
重写PreSubClassWindow,然后
void CCircleButton::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
CButton::PreSubclassWindow();
ModifyStyle( 0 , BS_OWNERDRAW );
}
按钮具有了自绘功能后,我们就可以重写DrawItem,在这个函数里完成按钮的彻底换装。
那么如何换装呢?当然啦首先得有漂亮的衣服啊(就是准备好一张大小合适圆形的位图),
然后根据位图的大小绘制按钮。
既然要绘制圆形按钮,当然按钮的形状就得是圆的。
首先获得位图的大小,然后根据位图大小设置按钮的大小并绘制对应的圆形。
最后创建一个位图画刷,刷一下那个圆形区域即可
详细代码请参看源码
没法上传文件啊!!
有需要的留下邮箱吧