Mfc子窗口修改Static Text控件的字体、大小、颜色

来源:互联网 发布:wtaps15aw裤数据 编辑:程序博客网 时间:2024/05/22 14:16

开门见山:创建子窗口的方法请参考我上一篇博客:http://blog.csdn.net/u014411348/article/details/53911682

主窗口修改Static Text控件网上已有很多大神给出了方法,小的就不再重复。

一、单纯改变字体大小、字体


1.请自行在窗口中添加一个Static Text控件并命名。在子窗口的类文件***.h文件下添加(如图1)CFont font1;//控件1CFont font2;//控件2

图1

2.在对应的***.cpp文件中的DoDataExchange(CDataExchange* pDX)函数中添加以下代码:font1.CreatePointFont(220, L"楷体");//控件1GetDlgItem(IDC_STATIC1)->SetFont(&font1); //更改控件1的字体font2.CreatePointFont(260, L"黑体");//控件2GetDlgItem(IDC_STATIC2)->SetFont(&font2);//更改控件2的字体

编译运行可下图结果:

图2

二、单纯改变字体大小、字体、颜色

改变颜色需响应WM_CTLCOLOR,有两种方法创建OnCtlColor()函数,1.1.可使用类向导添加OnCtlColor()函数1.2.可手动添加OnCtlColor()函数在.h文件中添加函数声明:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog)    ...    ON_WM_CTLCOLOR()  ...END_MESSAGE_MAP() //函数实现HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);   if (pWnd->GetDlgCtrlID()==IDC_E_TEST) //控件ID      pDC->SetTextColor(RGB(255,0,0)); //设置颜色   return hbr;}
2.在OnCtlColor函数中添加代码实现修改控件,
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO:  在此更改 DC 的任何特性if (pWnd->GetDlgCtrlID() == IDC_STATIC1){m_font.CreatePointFont(220, L"华文行楷");//控件1pDC->SetBkColor(RGB(0, 255, 0));//背景色为绿色pDC->SetTextColor(RGB(255, 0, 0));//文字为红色pDC->SelectObject(&m_font);//文字为22号字体,华文行楷return m_brush;}// TODO:  如果默认的不是所需画笔,则返回另一个画笔return hbr;}

图3

有疑问的朋友可留言!



0 0
原创粉丝点击