MFC 设置按钮背景,点击后切换背景(不是按下时和松开时切换)

周一开始一直在做MFC自绘按钮,网站上找了很多大神以前的博客和论坛讨论,但都没办法直接解决我的这个问题,所以就只能自己来解决这个问题。

首先在Dlg.h文件里申明下面两个变量,

    CBitmapButton m_cBtn;
    bool bButtonFlag;

然后在构造函数里初始化bButtonFlag,

    bButtonFlag=0;

然后在OnInitDialog()里加入下面三句话,

    m_cBtn.SubclassDlgItem(IDC_BUTTON1, this); //关联按钮和对话框 
    m_cBtn.LoadBitmaps(IDB_GRAY1);//给按钮加载图片 
    m_cBtn.SizeToContent();//调整按钮大小为图片大小

最后写按钮的消息响应函数,

void CMyButtonTestDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    if (bButtonFlag)
    {
        m_cBtn.LoadBitmaps(IDB_GRAY1);
        m_cBtn.SizeToContent();
        m_cBtn.InvalidateRect(NULL,true);//强制刷新按钮
        bButtonFlag=0;
    } 
    else
    {
        m_cBtn.LoadBitmaps(IDB_RED);
        m_cBtn.SizeToContent();
        m_cBtn.InvalidateRect(NULL,true);
        bButtonFlag=1;
    }   
}

最后感谢各位大神们留下的各种信息,以上只是一种粗浅的实现方法,后面将会学习用DC来进行按钮的背景设置,有时间的话会把自己的学习总结放上来,希望也能帮助别人。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值