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

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函数。


分享到:
评论

相关推荐

    pre_o_1csdn63m9a1bs0e1rr51niuu33e.a

    pre_o_1csdn63m9a1bs0e1rr51niuu33e.a

    matlab建立计算力学课程的笔记和文件.zip

    matlab建立计算力学课程的笔记和文件.zip

    FT-Prog-v3.12.38.643-FTD USB 工作模式设定及eprom读写

    FT_Prog_v3.12.38.643--FTD USB 工作模式设定及eprom读写

    matlab基于RRT和人工势场法混合算法的路径规划.zip

    matlab基于RRT和人工势场法混合算法的路径规划.zip

    matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip

    matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip

    office 2016三和一精简版

    office 2016三和一精简版

    Scrapy-1.0.2-py2-none-any.whl

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡咨询顾问必备宝典-时间管理.ppt

    麦肯锡咨询顾问必备宝典-时间管理.ppt

    setuptools-0.6c10-py2.4.egg

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡顾问的黄金思考方法.pptx

    麦肯锡顾问的黄金思考方法.pptx

    91fdd461elb59a4ce8dfcfc46bc283a7.msi

    91fdd461elb59a4ce8dfcfc46bc283a7.msi

    ansys maxwell

    ansys maxwell

    5-5.py

    5-5

    xx广告促销计划流程实施手册.ppt

    xx广告促销计划流程实施手册.ppt

    仿小米商城微信小程序源码+项目说明.zip

    仿小米商城微信小程序源码+项目说明.zip

    pytest-4.6.0.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Scrapy-2.10.1.tar.gz

    文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    麦肯锡xx客户满意服务.ppt

    麦肯锡xx客户满意服务.ppt

    网课专注度监测预警系统基于yolov5目标检测的网课专注度检测系统源码+模型+pyqt5界面.zip

    网课专注度监测预警系统基于yolov5目标检测的网课专注度检测系统源码+模型+pyqt5界面.zip

    基于python+Scrapy的农业数据爬虫设计与实现

    【作品名称】:基于python+Scrapy的农业数据爬虫设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于Scrapy的农业数据爬虫设计与实现 . ├── Crops # web服务 │ ├── app.py │ ├── static # 静态文件 │ │ ├── css │ │ └── js │ └── templates # 静态页面 │ ├── corn.html │ ├── corns.html │ ├── index.html │ ├── porcor.html │ ├── pork.html │ └── porks.html ├── README.md └── spider # 爬虫及数据处理 ├── integration # 数据汇总 │ └── corn.py └── tutorial # 爬虫 ├── scrap

Global site tag (gtag.js) - Google Analytics