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

填充静态文本框的颜色:

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

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

填充静态文本框的颜色:

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好些,可以随时修改。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 Web@Cool02.com

文章标题:VC 设置静态文本框的背景色

文章字数:372

本文作者:零贰

发布时间:2018-08-13, 03:20:47

最后更新:2019-10-17, 21:21:34

原始链接:/html/20180813032047.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
零址导航 Gitee