自绘之系统风格,DrawFrameControl & DrawThemeBackground 应用

本文介绍使用DrawFrameControl和DrawThemeBackground API绘制系统风格控件的方法。通过这两个API可以实现自定义控件与系统主题的自动适配,确保控件外观的一致性和协调性。文章提供了绘制系统标准按钮的例子,并附带源代码。

[开源]自绘之系统风格,DrawFrameControl & DrawThemeBackground 应用

楼层直达
 
只看楼主更多操作 楼主   发表于: 2011-08-20
虽说绘制系统默认风格的控件有些多此一举,但是有时候还是有些用处的。比如下面这个自定义控件的标题栏背景就运用到了 Rebar 的背景,系统主题再变化也能和其他控件能够相协调。



DrawFrameControl 和 DrawThemeBackground 是两个比较奇特的 API,前者在 Win2000 的时候就有了,而后者则需要 WinXP 及以上版本的支持。另外,后者需要开启系统主题(不能为经典主题)。简单而言,DrawFrameControl 绘制的控件是经典主题风格的,如果设置了系统主题,则可以用 DrawThemeBackground 绘制出当前系统主题风格的控件。在这里我以绘制系统标准按钮为例(当然我没有事先判断 DrawThemeBackground 是否存在,可能 Win2000 及以下版本的系统上没有办法运行,大家可以修改一下;另外 PAINTSTRUCT 结构体没有声明完整,若需要请修改)

开启系统主题时:


没有开启系统主题或经典主题时:


源码奉上,欢迎大家改进或交流意见:
DrawButton.e (12 K) 下载次数:526

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值