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

    技术2022-05-11  12

    当你看到 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 行是创建黑色的画刷。它的效果图如下:    

    最新回复(0)