完善我的CButton类:关于透明按钮的制作

       终于花时间把vc中透明的问题搞清楚了,也就那么回事,下面来说一下关于按钮透明的方法,也就是重载按钮类的OnEraseBkgnd的消息,该消息是在onpaint消息前发出的,主要是用来擦除窗体。下面看代码:

BOOL bb::OnEraseBkgnd(CDC* pDC)
{
 if(transparent){
 // ::AfxMessageBox("1");
  return true;
 }else{
 return CButton::OnEraseBkgnd(pDC);
 }
}

我们在这个返回true就可以了,当然在drawitem里沃们还要自己绘制按钮的边框,下面给出调用按钮透明的函数:

void bb::settransparent(){
this->transparent=1;

this->GetParent()->Invalidate();
}

这里我对按钮的父窗体用了Invalidate方法,这样才能使整个窗体重绘,使按钮透明的效果马上显示出来。

       好了,文章有不妥之处,还望大家多多指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值