记录:自定义设置颜色静态控件的实现

下面是记载个人实现的颜色静态控件一个学习过程:

准备工作:

① 新建一个MFC对话框的应用程序,放置两个静态控件(IDC_STATIC1、IDC_STATIC2)和一个按钮,在按钮事件中:

	CClientDC dc(GetDlgItem(IDC_STATIC1));
	CRect rc;
	GetDlgItem(IDC_STATIC1)->GetClientRect(&rc);
	CBrush Br(RGB(0, 255, 0));
	dc.SelectObject(&Br);
	dc.Rectangle(rc);
	dc.SetBkMode(TRANSPARENT);

当点击按钮时,将IDC_STATIC1静态控件设置为【绿色】,这个过程说明了如何实现设置静态控件的背景色;

下面创建一个类【CColorStatic】,把上面的方法封装成一个成员方法,实现自定义颜色静态控件:

② 按【Crl+w】创建派生于MFC的CStatic 的CColorStatic类,添加成员函数:

void CColorStatic::SetBackColor(COLORREF cf)

函数实现为:

	CClientDC dc(this);
	CRect rc;
	GetClientRect(&rc);
	CBrush Br(cf);
	dc.SelectObject(&Br);
	dc.Rectangle(rc);
	dc.SetBkMode(TRANSPARENT);

好了,这个【CColorStatic】就算完成,再回到静态控件IDC_STATIC2,创建CColorStatic变量(或者使用ClassWizard创建,或者使用CWnd::SubclassDlgItem);

③在按钮事件中继续:

m_My1.SetBackColor(RGB(255, 0, 0)); //红色

看到了静态控件IDC_STATIC2被设置为红色。


依次为起点,在其上逐渐添加【文本输出】、【文本的前景色、背景色】等等,参考CDC类的成员函数,都可虑向这个控件上添加!


你可能感兴趣的:(工作,mfc)