下面是记载个人实现的颜色静态控件一个学习过程:
准备工作:
① 新建一个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创建自定义颜色静态控件,并通过实例演示如何设置控件背景色。此外,还提供了封装自定义颜色静态控件的方法。
688

被折叠的 条评论
为什么被折叠?



