加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

mfc中设置static text的颜色

(2009-05-20 10:13:22)
标签:

杂谈

在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text孔家的

背景色和字体

1 在对话框的类中添加两个变量:

CBrush m_brush;
CFont m_font;

在OnInitDialog()函数中添加:

// TODO: 在此添加额外的初始化代码
m_font.CreatePointFont(150,"华文行楷");
m_brush.CreateSolidBrush(RGB(0,255,0));

2 添加WM_CTLCOLOR 消息响应,添加的方法为:

     在对话框类中声明:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ;

    在消息映射中添加: ON_WM_CTLCOLOR()

     如:

      BEGIN_MESSAGE_MAP(CtestEnvDlg, CDialog)

      ON_WM_CTLCOLOR()
      //}}AFX_MSG_MAP
      END_MESSAGE_MAP()

 

3 添加响应函数:

HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(m_yourStatic.m_hWnd == pWnd->m_hWnd)
{
   pDC->SetBkColor(RGB(0,255,0));
   pDC->SelectObject(&m_font);
   return m_brush;
}
return hbr;
}

 

这样就可以改变static text的颜色和字体了

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有