MFC修改button的颜色、背景、边框

本文介绍了如何在MFC中自定义CMyButton类,以实现修改button的颜色、背景和边框。通过添加新的类,设置BS_OWNERDRAW风格,重载DrawItem函数,并使用CDC进行绘制,可以实现按钮的个性化效果。详细步骤包括创建CMyButton类,绑定控件,设置颜色,以及在DrawItem函数中根据按钮状态改变背景色和边框。
摘要由CSDN通过智能技术生成

     MFC的button控件是一个不同于其他控件,其CButtton类是CWnd的一个子类,在修改button的背景、颜色和边框的时候必须自己进行编写一个新的类,如CMyButton。下面是进行背景、颜色、边框修改的步骤:


1.在项目->添加类->CMyButton。这样会自动生成两个文件,一个.CPP文件和一个.h文件。例如CMyButton.cpp和CMyButton.h

2.在你的主工程的头文件C**Dlg.h中添加对CMyButton.h的包含,即  #include  “CMyButton.h”

3.找到OnInitDialog()函数,在该函数里面添加如下代码:

     CMyButton m_Btn;//定义一个CMybutton的变量,可以在其他地方进行定义,只需要包含 “CMyButton.h” 即可

     

      //将按钮修改为BS_OWNERDRAW风格,允许button的采用自绘模式

     GetDlgItem(IDC_BUTTON1)->ModifyStyle(0,BS_OWNERDRAW,0);


     //绑定控件IDC_BUTTON1与类CMyButton,响应重载函数DrawItem()

     m_Btn.Attach(IDC_BUTTON1,this);

 

     //设置Button Down的背景色,SetDownColor()和SetUpnColor()是CMyButton类中的析构函数

    m_Btn.SetDownColor(RGB(255,0,0));


     //设置Button Up的背景色

    m_Btn.SetUpColor(RGB(0,0,255));


    注:若控件IDC_BUTTON1在以前进行过消息绑定,那么就会出现bug,只需要在映射函数DoDataExchange()中将消息绑定的语句注释掉就行了。如下:

       //DDX_Control(pDX, IDC_BUTTON1, m_cbBtn);//注释掉就可以了。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值