BngThea 发表于 2017-7-24 17:44:22

《Windows SDK》021 窗口绘画:画笔2

一 核心知识点
* 虚线点线等间隙的颜色默认为白色

* 设置间隙颜色
间隙颜色由背景模式和背景颜色共同决定
背景模式分为透明与不透明,默认为不透明,可以通过SetBkMode进行设置
背景颜色指的是画笔对象本身的背景对应的颜色,可以通过SetBkColor进行设置

* 绘图模式(混合模式)
绘制曲线的机制:将画笔的像素颜色和目标区域的表面颜色按位进行布尔运算,该机制简称“光栅操作”,即ROP2(Raster Operation),后面的2表示两种颜色的操作
可以通过SetROP2函数设置该机制的实现模式

二 新API函数
* SetBkColor(hdc, RGB(0, 255, 0))
该函数用来设置指定类型对象的背景颜色

第一个参数: 指定环境句柄
第二个参数: 设置的颜色

如果利用SetBkMode函数将模式改为透明,则将使该函数失效

* SetBkMode(hdc, OPAQUE)
该函数用来设置类型对象的背景模式,该类型可以是字符,阴影画刷和非实线画笔

第一个参数: 指定环境句柄
第二个参数: 背景模式,可以是以下两种——
1 OPAQUE      不透明模式
2 TRANSPARENT 透明模式

* GetBkMode(hdc)
该函数返回当前环境句柄对应的背景模式

* SetROP2(hdc, R2_NOT)
该函数用来设置指定环境句柄的混合模式

第一个参数: 指定的环境句柄
第二个参数: 混合模式,典型的有——
1 R2_COPYPEN            默认情况,显示的颜色是当前画笔颜色
2 R2_BLACK / R2_WHITE   显示颜色总是 黑/白 色
3 R2_NOT                显示的颜色总和屏幕颜色相反

该函数不支持矢量设备

* GetROP2(hdc)
该函数用来获取指定环境中的混合模式,返回值为SetROP2函数第二个参数的一种
页: [1]
查看完整版本: 《Windows SDK》021 窗口绘画:画笔2