`
阿尔萨斯
  • 浏览: 4259695 次
社区版块
存档分类
最新评论

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

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
当你需要自己显示一个与众不同的按钮时,就需要使用下面的方法来创建。当然这里也是综合地使用前面学习过的知识进行一次综合的练习。演示怎么样使用众多的API函数,这里还可以学会使用GetSysColor函数来获取系统的颜色。
WINUSERAPI
DWORD
WINAPI
GetSysColor(
__in int nIndex);
nIndex是系统定义的颜色索引值。
调用这个函数的例子如下:
#001//
#002//界面显示输出.
#003//
#004//蔡军生2007/09/12 QQ:9073204 深圳
#005//
#006void CCaiWinMsg::OnDraw(HDC hDC)
#007{
#008//显示一个按钮。
#009//设置按钮背景颜色。
#010RECT rcText;
#011rcText.left = 10;
#012rcText.top = 10;
#013rcText.right = 100;
#014rcText.bottom = 100;
#015
#016HBRUSH hbrush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
#017//用黑色的画刷填充四边形的颜色.
#018FillRect(hDC,&rcText,hbrush);
#019DeleteObject(hbrush);
#020
#021//
#022HPEN hLight = CreatePen(PS_SOLID,1,
#023 GetSysColor(COLOR_3DHIGHLIGHT));
#024HPEN hShdaow = CreatePen(PS_SOLID,1,
#025 GetSysColor(COLOR_3DDKSHADOW));
#026
#027//
#028//移到指定位置.
#029POINT ptLeftTop;
#030ptLeftTop.x = 20;
#031ptLeftTop.y = 20;
#032MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);
#033
#034//显示白线。
#035HGDIOBJ hOldPen = SelectObject(hDC,hLight);
#036ptLeftTop.x = 20;
#037ptLeftTop.y = 90;
#038LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#039
#040ptLeftTop.x = 20;
#041ptLeftTop.y = 20;
#042MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);
#043ptLeftTop.x = 90;
#044ptLeftTop.y = 20;
#045LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#046
#047//显示黑色线。
#048SelectObject(hDC,hShdaow);
#049ptLeftTop.x = 90;
#050ptLeftTop.y = 90;
#051LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#052
#053ptLeftTop.x = 20;
#054ptLeftTop.y = 90;
#055LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#056
#057//
#058SelectObject(hDC,hOldPen);
#059DeleteObject(hLight);
#060DeleteObject(hShdaow);
#061
#062int nOldMode = SetBkMode(hDC,TRANSPARENT);
#063//输出文字。
#064std::wstring strShow(_T("按钮"));
#065DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText,
#066 DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);
#067
#068//
#069SetBkMode(hDC,nOldMode);
#070}
这是综合使用前面学习过的API函数来画一个按钮,如果有什么不了解的,请看看以前学习过的API函数。


分享到:
评论

相关推荐

    API之网络函数---整理网络函数及功能

    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 ...

    VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:

    MFC的CDC类封装了Windows API 中大部分的画图函数。CDC的常见操作函数包括: Drawing-Attribute Functions:绘图属性操作,如:设置透明模式 Mapping Functions:映射操作 Coordinate Functions:坐标操作 ...

    易语言WindowsMe-98-2000桌面透明

    易语言Windows Me-98-2000桌面透明源码,Windows Me-98-2000桌面透明,恢复颜色,设置图标文字,排列桌面图标,FindWindow,FindWindowEx,UpdateWindow,SendMessageP,SendMessage,GetSysColor,SetSysColors

    易语言转换到masm代码

    易语言转换到masm代码源码,转换到masm代码,取字节集指针,查看字节集,还原字节集,BG_10To16,BG_16To10,函数_字节集还原,GetSysColor,BeaEngineVersion,BeaEngineRevision,Disasm,VirtualProtect,ReadProcessMemory,...

    基于VB的文字动画特效

    DrawText lHDC, sText, lLen, tR, DT_CALCRECT '调用API函数DrawText tR.Right = tR.Right + 4 If (tR.Right &gt; Me.ScaleWidth \ Screen.TwipsPerPixelX) Then tR.Right = Me.ScaleWidth \ Screen.TwipsPerPixelX ...

    PB调用SciLexer.dll代码编辑器源代码PBEditor

    Win API Functions used: CloseClipboard EmptyClipboard GetClassName GetSysColor GetTempPath GetWindow GetWindowLong OpenClipboard RtlMoveMemory SendMessage SetParent SetWindowLong SHGetFolderPath ...

    易语言汇编助手

    汇编助手,初始语法色彩等属性,汇编,清理,查看字节集_论坛,U_A,a_u,加载记算器,提示处理,刷新列表框,移动超级列表框,脚本排序,取原位置,取字节集指针,查看字节集,还原字节集,BG_10To16,BG_16To10,函数_字节集还原,...

    界面上实现3D文字.rar

    COLORREF OldColor = dc.SetTextColor( ::GetSysColor( COLOR_3DHILIGHT)); dc.DrawText( string, rectText+CPoint(1,1) , DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_CENTER); dc.SetTextColor( ::GetSysColor( COLOR_...

    易语言动态文字效果

    易语言动态文字效果源码,动态文字效果,TextEffect,timeGetTime,SetTextCharacterExtra,OffsetRect,SetTextColor,FillRect,GetDC,CreateSolidBrush,DeleteObject,GetSysColor,TextOut,DrawText,OleTranslateColor

    易语言叮咚茶文字特效

    TextEffect,timeGetTime,SetTextCharacterExtra,OffsetRect,SetTextColor,FillRect,CreateSolidBrush,DeleteObject,GetSysColor,TextOut,DrawText,OleTranslateColor,GetDC,lstrlen,ReleaseDC,CreateFont,MulDiv,...

    易语言Win98-2000桌面透明

    易语言Win98-2000桌面透明源码,Win98-2000桌面透明,恢复颜色,设置图标文字,排列桌面图标,FindWindow,FindWindowEx,UpdateWindow,SendMessageP,SendMessage,GetSysColor,SetSysColors

    易语言文字特效

    易语言文字特效源码,TextEffect,timeGetTime,SetTextCharacterExtra,OffsetRect,SetTextColor,FillRect,CreateSolidBrush,DeleteObject,GetSysColor,TextOut,DrawText,OleTranslateColor,GetDC,lstrlen,ReleaseDC,...

    易语言文字移动特效

    易语言文字移动特效源码,文字移动特效,TextEffect,timeGetTime,SetTextCharacterExtra,OffsetRect,SetTextColor,FillRect,CreateSolidBrush,DeleteObject,GetSysColor,TextOut,DrawText,OleTranslateColor,GetDC,...

    易语言控件边框美化_例程源码,易语言控件边框美化模块

    控件边框美化模块,开启边框美化,Border_SubClass,Border_OnMessage,Border_DrawBorder,CallWindowProc,CreatePen,FrameRect,GetProp,GetWindowDC,GetWindowRect,SetProp,SetWindowLong,GetSysColor,GetClassName,...

    易语言组件边框美化

    组件边框美化,开启边框美化,Border_SubClass,Border_OnMessage,Border_DrawBorder,CallWindowProc,CreatePen,FrameRect,GetProp,GetWindowDC,GetWindowRect,SetProp,SetWindowLong,GetSysColor,GetClassName,...

    VC6 CListCtrl继承类例子

    pDC-&gt;FillSolidRect(&rcTemp, GetSysColor(COLOR_HIGHLIGHT)) ; pDC-&gt;SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT)) ; } else { COLORREF color; color = GetBkColor(); pDC-&gt;FillSolidRect...

Global site tag (gtag.js) - Google Analytics