如何改变STATIC控件的文字颜色

翻译|其它|编辑:郝浩|2005-10-18 10:25:00.000|阅读 1664 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


如何改变STATIC控件的文字颜色


通过处理WM_CTLCOLORSTATIC消息,必需注意以下几点:

1、 MFC没有使用WM_CTLCOLORSTATIC消息,而是使用WM_CTLCOLOR消息;

2、 必须返回一个背景刷子,即使你不改变背景颜色;如果STATIC的背景色要与父窗口背景色相同,可以用GetStockObject(NULL_BRUSH) 返回空画刷;

3、 返回的画刷颜色并不是文字的颜色,如果要改变文字颜色,可以调用SetTextColor;

4、 不要每次处理都创建一个刷子,应该用一个成员变量来保存刷子(全局变量也可),并要释放它,如果是由GetStockObject返回的刷子,就不用那么麻烦;


下面是用WTL写的示例:


LRESULT OnCtlColorStatic( HDC hdc , HWND hwnd )

{

   // 只处理特定的STATIC

  if( hwnd == GetDlgItem( IDC_STATIC1 ) )

  {

    ::SetTextColor( hdc , RGB(255,0,0) );

    ::SetBkMode( hdc , TRANSPARENT ) ;

    return (LRESULT)GetStockObject( NULL_BRUSH ) ;

   }

SetMsgHandled(FALSE);

return 0 ;


}

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP