BngThea 发表于 2017-7-24 20:06:43

《Windows SDK》022 窗口绘画:画刷

本帖最后由 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]
查看完整版本: 《Windows SDK》022 窗口绘画:画刷