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

来源:互联网 发布:淘宝达人后如何直播 编辑:程序博客网 时间:2024/06/07 21:37

周一开始一直在做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来进行按钮的背景设置,有时间的话会把自己的学习总结放上来,希望也能帮助别人。

0 0
原创粉丝点击