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

原创 2006年06月07日 16:56:00

通过处理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 ;

       }

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MFC EDIT控件中改变背景色和文字颜色

这两天需要给MFC中的EDIT框改变一下背景颜色,而且由于框比较多,且每次需要变色的框也是随机的,但是个数是确定的。在网上搜了好多,下面这个是介绍的比较清楚,而且可以用的一种方法。 由于本人用的vs...
  • wjeson
  • wjeson
  • 2012-03-22 11:12
  • 20129

动态改变listctrl 单元格背景及文字颜色(非重写控件)

CListCtrl 类里面没有直接改变单元格背景及文字颜色的成员函数,只有改变整个背景的颜色。我有时候只是需要把某个单元格的颜色改变来突出显示就可以了: 我们可以通过重载ListCtrl控件的C...

增加duilib edit控件的提示功能和多种文字颜色

转载请说明原出处,谢谢~~:       duilib的CEditUI控件内部使用了win32的原生edit控件,最近在做的一个项目里需要增强CEditUI控件的一些功能,我就把改进的代码写到博客里。...

在带(继承)TextView的控件中,在代码中动态更改TextView的文字颜色

代码中动态改变TextView的字体颜色。RadioButton的动态使用

VC++ 中如何更改Tree Control控件中节点的背景色和节点文字的颜色

最近在项目中遇到一个问题,就是要设置Tree Control控件中节点的背景色和节点文字的颜色。在网上找了很多资料,发现最常用的方式是响应控件的NM_CUSTOMDRAW消息。具体的实现步骤如下: ...
  • tipler
  • tipler
  • 2011-11-29 12:51
  • 3466

MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件

MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度)         如果设置了背景色,就不保留透明背景        ...

Mfc子窗口修改Static Text控件的字体、大小、颜色

开门见山:创建子窗口的方法请参考我上一篇博客:http://blog.csdn.net/u014411348/article/details/53911682 主窗口修改Static Text控件网上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)