您的位置:首页 > 其它

MFC改变对话框中静态文本的字体大小

2011-05-18 21:40 288 查看
VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。

例子:
1、改静态文体的ID,如:IDC_STATIC1
2、添加一个Edit控件,建立一个关联的控件m_editControl。
3、在OnInitDialog中添加如下代码:
CFont * f;
f = new CFont;
f->CreateFont(16,            // nHeight
     0,           // nWidth
     0,           // nEscapement
     0,           // nOrientation
     FW_BOLD,     // nWeight
     TRUE,        // bItalic
     FALSE,       // bUnderline
     0,           // cStrikeOut
     ANSI_CHARSET,              // nCharSet
     OUT_DEFAULT_PRECIS,        // nOutPrecision
     CLIP_DEFAULT_PRECIS,       // nClipPrecision
     DEFAULT_QUALITY,           // nQuality
     DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
     _T("Arial"));              // lpszFac

m_editControl.SetFont(f);
m_editControl.SetWindowText("问专家");
GetDlgItem(IDC_STATIC1)->SetFont(f);

 

MFC控件的颜色设置,通过定义相应WM_CTLCOLOR消息的HBRUSH CXXXDlg::OnCtlColor函数来实现。例如下面的例子

 

HBRUSH CProTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

 // TODO:  在此更改 DC 的任何属性
 if(pWnd->GetDlgCtrlID() == IDC_GB1 ||
  pWnd->GetDlgCtrlID() == IDC_GB2 ||
  pWnd->GetDlgCtrlID() == IDC_GB3 ||
  pWnd->GetDlgCtrlID() == IDC_GB4 ||
  pWnd->GetDlgCtrlID() == IDC_GB5)
  pDC->SetTextColor(RGB(0,0,255));
 // TODO:  如果默认的不是所需画笔,则返回另一个画笔
 return hbr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc