因为默认的字体大小比较小,且有时为了美观,MFC控件的字体样式更改有时显得比较重要。这一修改并不是很直观,需要经由代码来完成,代码如下:
CFont *m_pFont;//创建新的字体 m_pFont = new CFont; m_pFont->CreateFont(32, // 字体高度 0, // 字体宽度 0, // 字体倾斜角 0, // 字体倾斜角 FW_EXTRALIGHT, // 字体的粗细 FALSE, // 字体是否为斜体 FALSE, // 字体是否有下划线 0, // 字体是否有删除线 ANSI_CHARSET, // 字体使用的字符集 OUT_DEFAULT_PRECIS, // 指定如何选择合适的字体 CLIP_DEFAULT_PRECIS, // 确定裁剪的精度 DEFAULT_QUALITY, // 怎么样跟选择的字体相符合 DEFAULT_PITCH | FF_SWISS, // 间距标志和属性标志 _T("楷体")); // 字体的名称 //标签控件 m_EditControl.SetFont(m_pFont, false); //将编辑框与设置字体相关联 //按钮控件 mybutton.SetFont(m_pFont, false);//对于按键也同理,mybutton为CButton对象 //列表控件 list.SetFont(m_pFont, false);//list为CListCtrl对象 list.InsertColumn(0, _T("学号"), LVCFMT_LEFT, 110); list.InsertColumn(1, _T("姓名"), LVCFMT_LEFT, 110);要改变控件的字体颜色则更加复杂一点,需要做以下几点
1.定义画刷对象
CBrush m_Brush;//画刷工具2.初始化画刷对象
m_Brush.CreateSolidBrush(GetSysColor(COLOR_3DFACE));//初始化画刷,用GetSysColor返回对话框背景色3.添加对话框的WM_CTLCOLOR消息相应
4.在对话框的消息响应函数中添加如下代码
if (nCtlColor == CTLCOLOR_STATIC)//CTLCOLOR_STATIC为标签控件 { if (pWnd->GetDlgCtrlID() == IDC_STATIC_FONT)//特定的某一个标签,IDC_STATIC_FONT为标签控件ID { pDC->SetBkMode(BKMODE_LAST);//透明 pDC->SetTextColor(RGB(255, 0, 0)); //文字颜色 //pDC->SetBkColor(RGB(251, 247, 200));//背景色 return (HBRUSH)m_Brush.GetSafeHandle(); } }经过上面的操作,可以得到如下的效果:
原文地址:http://blog.csdn.net/weixinhum/article/details/46535637