修改控件上字体的颜色

思路:

为包含该控件的对话框添加:WM_CTLCOLOR消息的响应函数

HBRUSH CDialogColor::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd, nCtlColor);
    // TODO: Change any attributes of theDC here
    //设置显示字体
    CFont * cFont=new CFont;
    cFont->CreateFont(16,0,0,0,FW_SEMIBOLD,FALSE,FALSE,0, 
                                          ANSI_CHARSET,OUT_DEFAULT_PRECIS,
                                          CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
                                          DEFAULT_PITCH&FF_SWISS,"Arial");
    //对特定的控件做修改
    switch()
    {
       case CTLCOLOR_STATIC: //对所有静态文本控件的设置
      {
          pDC->SetBkMode(TRANSPARENT); 
          //设置背景为透明
          pDC->SetTextColor(RGB(255,255,0)); //设置字体颜色
          pWnd->SetFont(cFont); //设置字体
          HBRUSH B = CreateSolidBrush(RGB(125,125,255)); 
          //创建画刷
          return (HBRUSH) B; //返回画刷句柄
      }
      case CTLCOLOR_EDIT: //对所有编辑框的设置
     {
          pDC->SetBkMode(TRANSPARENT); 
          pDC->SetTextColor(RGB(255,255,0)); 
          pWnd->SetFont(cFont); 
          HBRUSH B = CreateSolidBrush(RGB(125,125,255)); 
          return (HBRUSH) B; 
      }
      default:
      return CDialog::OnCtlColor(pDC,pWnd, nCtlColor);
    }
}

  

posted on 2011-09-19 18:06  LateStop  阅读(2351)  评论(0)    收藏  举报

导航