MFC中改变按钮颜色的方法

本文参考学习 https://blog.csdn.net/zxccaoya/article/details/54142523 而来。

这里介绍mfc 中改变按钮颜色的最简单方法。

使用CMFCButton类

在mfc 的Dialog 或者 Form 中添加一个按钮,但注意是MFCButton。

MFC自带的MFC Button Control控件等按钮可以修改颜色,还能添加图片,设置字体颜色等。这些控件就在工具箱的下面,前面带MFC开头的那些。

添加后,caption 是MfcButton1, ID是IDC_MFCBUTTON1。

点击产生按钮事件OnBnClickedMfcbutton1(),在这个事件里添加代码:

CMFCButton* mfcb=(CMFCButton*)GetDlgItem(IDC_MFCBUTTON1);
    mfcb->SetFaceColor(RGB(0, 255, 0));

现在可以看到按钮一点,就变为红色的按钮了。

改变RGB 里面的数字,可以改变不同颜色的按钮。

可能会有的问题:

CMFCButton中的SetFaceColor()可能会显示不出颜色,需要设置

m_button_sure.m_bTransparent=FALSE;

m_button_sure.m_bDontUseWinXPTheme= TRUE;才可。

在button里面点击会有黑圈,要消除黑色圆圈需要使button里面的属性m_bDrawFocus = FALSE。

链接http://www.cnblogs.com/weiqubo/archive/2011/03/31/2000953.html

消除button的边框,不是很立体的,使

m_button_cancel.m_nFlatStyle = CMFCButton::BUTTONSTYLE_NOBORDERS;使其样式变化,CMFCButton可以设置属性。
 

多姿多彩的按钮颜色

为了按我们选择的颜色,改变按钮,需要用到颜色拾取对话框CColorDialog

下面是我程序的代码,前3句是拾取颜色的代码。

void Crtc4View::OnBnClickedMfcbutton1()
{
	CColorDialog dlg;
	dlg.DoModal();
	COLORREF color=dlg.GetColor();
	CMFCButton* mfcb=(CMFCButton*)GetDlgItem(IDC_MFCBUTTON1);
	mfcb->SetFaceColor(color);
}

运行程序,点击按钮,就有选择颜色的对话框。拾取什么颜色,按钮就显示什么颜色。

发布了131 篇原创文章 · 获赞 112 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/leon_zeng0/article/details/100186047