美化MFC 之调整静态文本的颜色 字体。 用于添加公司标题 联系方式 口号等数据

很多人都觉得自己的程序的界面不那么美观,往往VC默认产生的对话框比较单调,

因此很多人往往找到很多其它的控件对对话框进行美化修饰,

例如给静态控件设置字体,设置背景颜色等等, 其实这些完全可以由VC自己的WM_CTLCOLOR消息来完成!

一个对话框 假设叫A。 我们可以在他的 WM_CTLCOLOR 里面做一些事情 来达到 ,美化节目的效果。

下面代码就是调整 静态文本的颜色。  

//对话框 WM_CTLCOLOR 消息的响应函数

//OnCtlColor  这个函数的名字 猜测是 控件 颜色的消息响应函数
HBRUSH CTestGszDlg::OnCtlColor(CDC* pDC,//那个日本浪人  ,用的时候你需要把他手里原本的工具换掉
                                CWnd* pWnd,//是控件的指针
                                UINT nCtlColor)
{
    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);//这句代码VS2010向导自己生成的

    // TODO:  在此更改 DC 的任何特性
    //GetDlgItem 获得它的子控件

    COLORREF tCl=RGB(255,0,0);//这个是我自己些  就是定义个颜色变量  typedef DWORD   COLORREF;
    if (pWnd->GetDlgCtrlID() == IDC_STATIC)//这句代码有些诡异啊。  pWnd->GetDlgCtrlID() 是获取pWnd 自身ID的意思。
        //pWnd 是一个控件, 不是对话框
    {
        pDC->SetTextColor(tCl);//只是对ID为IDC_STATIC 的设备上下进行调整。
    } 
    // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
}

效果图

posted @ 2015-10-04 23:13  wenluderen  阅读(503)  评论(3编辑  收藏  举报