MFC-WM_CTLCOLOR消息绘制控件颜色

来源:互联网 发布:Python For Finance 编辑:程序博客网 时间:2024/05/01 00:13

如果想改变控件的颜色,希望每个控件的颜色都不一样,可以利用WM_CTLCOLOR消息来绘制各个控件的颜色

例如:

HBRUSH CMFCTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);    // TODO:  在此更改 DC 的任何特性    // TODO:  如果默认的不是所需画笔,则返回另一个画笔    switch (nCtlColor)    {    case CTLCOLOR_DLG://对话框颜色        {            HBRUSH brush = CreateSolidBrush(RGB(255, 0, 0));            return brush;        }    case CTLCOLOR_EDIT:  //编辑框颜色        {            HBRUSH brush = CreateSolidBrush(RGB(255, 255, 0));            return brush;        }    case CTLCOLOR_LISTBOX://列表框颜色        {            HBRUSH brush = CreateSolidBrush(RGB(0, 255, 0));            return brush;        }    case CTLCOLOR_BTN:    //按钮颜色,还可以绘制字体颜色        {            HBRUSH brush = CreateSolidBrush(RGB(0, 0, 255));            return brush;        }    default:  //还有很多.....        break;    }    return hbr;}

不仅仅可以用CreateSolidBrush来创建画刷,还可以用CreateHatchBrush来创建阴影画刷绘制控件,还可以用CreatePatternBrush来创建位图画刷绘制控件.

0 0
原创粉丝点击