您的位置:首页 > 其它

Windows API一日一练(34)GetSysColor函数

2008-04-02 11:14 447 查看
当你需要自己显示一个与众不同的按钮时,就需要使用下面的方法来创建。当然这里也是综合地使用前面学习过的知识进行一次综合的练习。演示怎么样使用众多的API函数,这里还可以学会使用GetSysColor函数来获取系统的颜色。WINUSERAPIDWORDWINAPIGetSysColor(    __in int nIndex);nIndex是系统定义的颜色索引值。 调用这个函数的例子如下:#001 //#002 //界面显示输出.#003 //#004 //蔡军生 2007/09/12 QQ:9073204 深圳#005 //#006 void CCaiWinMsg::OnDraw(HDC hDC)#007 { #008  //显示一个按钮。#009  //设置按钮背景颜色。#010  RECT rcText;         #011  rcText.left = 10; #012  rcText.top = 10;   #013  rcText.right = 100;#014  rcText.bottom = 100;#015 #016  HBRUSH hbrush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));#017  //用黑色的画刷填充四边形的颜色.#018  FillRect(hDC,&rcText,hbrush);#019  DeleteObject(hbrush);#020  #021  //#022  HPEN hLight = CreatePen(PS_SOLID,1,#023         GetSysColor(COLOR_3DHIGHLIGHT));#024  HPEN hShdaow = CreatePen(PS_SOLID,1,#025         GetSysColor(COLOR_3DDKSHADOW));#026 #027  //#028  //移到指定位置.#029  POINT ptLeftTop;#030  ptLeftTop.x = 20;#031  ptLeftTop.y = 20;#032  MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);#033 #034  //显示白线。#035  HGDIOBJ hOldPen = SelectObject(hDC,hLight);#036  ptLeftTop.x = 20;#037  ptLeftTop.y = 90;#038  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);#039 #040  ptLeftTop.x = 20;#041  ptLeftTop.y = 20;#042  MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);#043  ptLeftTop.x = 90;#044  ptLeftTop.y = 20;#045  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);#046 #047  //显示黑色线。#048  SelectObject(hDC,hShdaow);#049  ptLeftTop.x = 90;#050  ptLeftTop.y = 90;#051  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);#052 #053  ptLeftTop.x = 20;#054  ptLeftTop.y = 90;#055  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);#056 #057  //#058  SelectObject(hDC,hOldPen);#059  DeleteObject(hLight);#060  DeleteObject(hShdaow);#061 #062  int nOldMode = SetBkMode(hDC,TRANSPARENT);#063  //输出文字。#064  std::wstring strShow(_T("按钮"));#065  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText,#066         DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);     #067 #068  //#069  SetBkMode(hDC,nOldMode);#070 } 这是综合使用前面学习过的API函数来画一个按钮,如果有什么不了解的,请看看以前学习过的API函数。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: