Windows API一日一练(25)CreateSolidBrush函数

时间:2022-01-30 22:03:38
当你看到 Windows 显示的按钮时,背景颜色是灰色的。当你看到缺省的窗口背景时,它是白色的。当你的老板需要你创建一个黑色背景的按钮时,你会怎么样做呢?其实在 Windows 里先用 API 函数 CreateSolidBrush 创建画刷,然后调用 FillRect 函数来填充背景。这样来,不管你需要什么样的背景,都随心所欲了吧。现在先来搞懂 CreateSolidBrush 函数,下次再来练习 FillRect
 
函数 CreateSolidBrush 声明如下:
WINGDIAPI HBRUSH WINAPI CreateSolidBrush( __in COLORREF color);
color 是画刷颜色。
 
调用这个函数的例子如下:
#001 //
#002 // 界面显示输出 .
#003 //
#004 // 蔡军生  2007/08/29 QQ:9073204 深圳
#005 //
#006 void CCaiWinMsg::OnDraw(HDC hDC)
#007 {
#008  //
#009  std::wstring strShow(_T("C++ 窗口类的实现 ,2007-08-27"));
#010  
#011  // 设置输出字符串的颜色 .
#012  COLORREF crOld = SetTextColor(hDC,RGB(255,0,0));
#013 
#014  RECT rcText;   
#015  rcText.left = 10;
#016  rcText.top = 30;
#017  rcText.right = 300;
#018  rcText.bottom = 80;
#019 
#020  // 创建黑色的画刷 ,
#021  HBRUSH hbrush = CreateSolidBrush(RGB(0, 0, 0));
#022 
#023  // 用黑色的画刷填充四边形的颜色 .
#024  FillRect(hDC,&rcText,hbrush);
#025 
#026  // 删除画刷 .
#027  DeleteObject(hbrush);
#028 
#029  // 显示字符串在四边形的中间位置 .
#030  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText,
#031         DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);
#032 
#033  // 恢复原来的颜色 .
#034  SetTextColor(hDC,crOld);
#035 }
 
21 行是创建黑色的画刷。它的效果图如下:
  Windows API一日一练(25)CreateSolidBrush函数