如何设置CStatic的字体?

主      题: 如何设置CStatic的字体?
作      者: liuxwin
回复次数: 7
发表时间: 2006-9-22 16:16:43
正文内容: 无
 

回复人: dzct 2006-9-22 16:19:39
CStatic f; f.SetFont(&font);


回复人: 井中月_VC (得分:5) 2006-9-22 16:26:40
本站精华贴
如何改变对话框内控件的字体?
  你有没有感到Edit,Static....控件的字体太单调,没什么新新样?下面的内容,给你一个解答.
  [解决方法]
  简单的步骤:在Windows中,每个窗体都有自己的字体.要改变其字体首先要CFont::CreateFont创建一个字体,然后用CWnd::SetFont选择此字体,赋给控件.但很多人可能会因为CreateFont的参数之多,望而却步.下面我介绍一下参数.
  函数原型:
  BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename );

  参数说明:
  nHeight         :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对值为高度.
  nWidth          :字体宽度.
  nEscapement     :文本行的倾斜度.
  nOrientation    :字符基线的倾斜度.
  nWeight         :字体的粗细.如下:
    .FW_DONTCARE
    .FW_THIN
    .FW_EXTRALIGHT
     .....
  bItalic         :字体是否为斜体
  bUnderline      :字体是否带下划线
  cStrikeOut      :字体是否带删除线
  nCharSet        :字体的字符集
    .ANSI_CHARSET
    .DEFAULT_CHARSET
    .SYMBOL_CHARSET.....
  nOutPrecision   :字符的输出精度
  nClipPrecision  :字符裁剪的精度
  nQuality        :字符的输出质量
  nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)
  lpszFacename    :字体名称
  [程序实现]
  假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件.
  class CMyDlg : public CDialog
  {  
  public:
         CFont m_Font;
  ........
  };
  BOOL CTMyDlg::OnInitDialog()
  {
     CDialog::OnInitDialog();

     // TODO: Add extra initialization here
     //CFont m_Font;
     m_Font.CreateFont(-11,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"Arial");
    CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);
     m_Edit->SetFont(&m_Font,FALSE);
     return TRUE;  // return TRUE  unless you set the focus to a control
  }
  小小说明:在OnInitDialog()中的//CFont m_Font;前的"//"号去掉,将类声明中的CFont m_Font;去掉会是什么结果?请自己试试.
改变Edit字体颜色! [所有相关帖子]
HBRUSH CButtonDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    // TODO: Change any attributes of the DC here
    if(nCtlColor == CTLCOLOR_EDIT)
    {
    if(pWnd->GetDlgCtrlID()== IDC_EDIT1)
        {
            pDC->SetTextColor(RGB(255,255,0));
            pDC->SetBkColor(RGB(251, 247, 200));
            pDC->SetBkMode(TRANSPARENT);
            return (HBRUSH) m_brush.GetSafeHandle();
        }
    }

    // TODO: Return a different brush if the default is not desired
    return hbr;
}

你可能感兴趣的:(windows,byte,attributes,initialization)