VC 设置静态文本框的背景色(转)

http://hi.baidu.com/bluebirdye/item/7e016f71259a6446ef1e538b

填充静态文本框的颜色:

1、在对话框中添加一个静态文本框,设置其id为IDC_STATIC

2、获得静态文本框的句柄 HWND h_static = GetDlgItem(IDC_STATIC)->m_hWnd;

3、获得静态文本框的DC句柄 HDC hdc = ::GetDC(h_static);

4、获得静态文本框的DC指针 CDC *pdc = CDC::FromHandle(hdc);

5、获得静态文本框的大小 CRect rect ; GetClientRect(h_static,rect);

6、填充静态文本框颜色 pdc->SetSolideRect(rect,RGB(255,0,0));

有人经常误解pdc->SetBkColor()来设置静态文本框的背景颜色,但是SetBkColor()的作用是设置TextOut函数输出的文字的背景颜色。

订正:6中的SetSolideRect函数可能是由于手误,函数名应该是FillSolidRect,当时仅仅是评印象总结的,非常抱歉对大家造成的不便。

非常感谢mozhaodi给出的正确方法,由于现在已经很久不用MFC了,所以当时也没有引起我足够的重视修改这篇文章。

非常感谢飘逸KS给我的批评,让我知道即时更正错误的重要性。

后附MSDN上FillSolidRect的函数原型:

void FillSolidRect( LPCRECT lpRect, COLORREF clr );void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );


这个方法不错,尽管代码多一些,但会比OnCtlColor好些,可以随时修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值