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

来源:互联网 发布:2013版excel数据在哪里 编辑:程序博客网 时间:2024/06/07 10:55

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

准备工作:

① 新建一个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类的成员函数,都可虑向这个控件上添加!


原创粉丝点击