您的位置:首页 > 其它

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

2016-12-31 09:44 531 查看
开门见山:创建子窗口的方法请参考我上一篇博客: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的字体

编译运行可下图结果:






[align=center]图2[/align]

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


改变颜色需响应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"华文行楷");//控件1
pDC->SetBkColor(RGB(0, 255, 0));//背景色为绿色
pDC->SetTextColor(RGB(255, 0, 0));//文字为红色
pDC->SelectObject(&m_font);//文字为22号字体,华文行楷
return m_brush;
}
// TODO:  如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}



[align=center]图3[/align]

有疑问的朋友可留言!




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息