鱼C论坛

 找回密码
 立即注册
查看: 2552|回复: 0

[学习笔记] 《Windows SDK》022 窗口绘画:画刷

[复制链接]
发表于 2017-7-24 20:06:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 BngThea 于 2017-7-24 22:16 编辑

一 核心知识点
* 闭合曲线函数
包括 Rectangle, Ellipse, RoundRect, Chord, Pie, Polygon 和 PolyPolygon
这些函数除了绘制对应的闭合曲线外,还会利用当前画刷填充内部区域

* 不填充闭合曲线的方法是将当前画刷设置为 HOLLOW_BRUSH 或 NULL_BRUSH

* Windows预设的画刷
通过GetStockObject(WHITE_BRUSH)可以直接调用Windows预设的画刷,有以下选择:
1 BLACK_BRUSH    黑色
2 WHITE_BRUSH    白色
3 HOLLOW_BRUSH / NULL_BRUSH     透明
4 DC_BRUSH       纯色,默认为白色,可以使用 SetDCBrushColor 来设置其颜色
5 DKGRAY_BRUSH   暗灰色
6 GRAY_BRUSH     灰色
7 LIGRAY_BRUSH   浅灰色

* 自定义画刷
可以利用 CreateSolidBrush, CreateHatchBrush 和 CreateBrushIndirect 来自定义画刷样式,然后用 SelectObject 选中,使用结束后记得用 DeleteObject 来删除


二 新API函数 和 结构
* hBrush = CreateSolidBrush(RGB(255, 0, 0))
该函数根据传入的颜色生成(返回)一个自定义的实体画刷

* hBrush = CreateHatchBrush(HS_CROSS, RGB(255, 255, 0))
该函数生成(返回)一个自定义的阴影画刷

第一个参数: 阴影样式,有如下选择——
1 HS_BDIAGONAL     45°向上左右阴影
2 HS_FDIAGONAL     45°向下左右阴影
3 HS_DIAGCROSS         45°交叉阴影
4 HS_HORIZONTAL    水平阴影
5 HS_VERTICAL      垂直阴影
6 HS_CROSS                 水平垂直交叉阴影

第二个参数: 阴影线条颜色

* hBrush = CreateBrushIndirect(plgBrush)
该函数通过一个 LOGBRUSH 结构生成(返回)一个自定义的画刷

* LOGBRUSH 结构
由三个成员构成:
第一个成员: 指定画刷的样式,包括实体画刷,阴影画刷,透明画刷等等
第二个成员: 指定画刷的颜色,如果第一个参数为透明画刷,则该值无效
第三个成员: 指定画刷的阴影样式,可选项同 CreateHatchBrush 的第一个参数一致

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 02:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表