函数功能:
SetROP2 函数用于设置当前的前景色混合模式(绘图模式)。
GDI 使用前景色混合模式,将画笔的颜色和画线显示区域的颜色混合后显示出来。
API 函数原型:
注释:_In_ 说明该参数是输入的。
int SetROP2( _In_ HDC hdc, _In_ int fnDrawMode );
参数解析:
|
参数 |
含义 |
|
hdc |
指定设备环境句柄 |
|
fnDrawMode |
绘图模式,即混合模式,具体请看下边。 |
fnDrawMode 参数指定的混合模式可以是以下值之一:
|
混合模式 |
含义 |
|
R2_BLACK |
显示的颜色总是黑色 |
|
R2_COPYPEN |
显示当前画笔的颜色 |
|
R2_MASKNOTPEN |
显示的颜色是画笔颜色的取反值和屏幕颜色的交集,即:R2_NOTCOPYPEN & 屏幕颜色 |
|
R2_MASKPEN |
显示的颜色是画笔颜色和屏幕颜色的交集,即:R2_COPYPEN & 屏幕颜色 |
|
R2_MASKPENNOT |
显示的颜色是画笔颜色和屏幕颜色的取反值的交集,即:R2_COPYPEN & R2_NOT |
|
R2_MERGENOTPEN |
显示的颜色是画笔颜色的取反值和屏幕颜色的并集,即:R2_NOTCOPYPEN | 屏幕颜色 |
|
R2_MERGEPEN |
显示的颜色是画笔颜色和屏幕颜色的并集,即:R2_COPYPEN | 屏幕颜色 |
|
R2_MERGEPENNOT |
显示的颜色是画笔颜色和屏幕颜色的取反值的并集,即:R2_COPYPEN | R2_NOT |
|
R2_NOP |
不操作,颜色保持不变 |
|
R2_NOT |
显示的颜色是屏幕颜色的取反值 |
|
R2_NOTCOPYPEN |
显示的颜色是当前画笔颜色的取反值 |
|
R2_NOTMASKPEN |
显示的颜色是画笔颜色和屏幕颜色的交集的取反值,即:~R2_MASKPEN |
|
R2_NOTMERGEPEN |
显示的颜色是画笔颜色和屏幕颜色的并集的取反值,即:~R2_MERGEPEN |
|
R2_NOTXORPEN |
显示的颜色是画笔颜色和屏幕颜色的异或结果的取反值,即:~R2_XORPEN |
|
R2_WHITE |
显示的颜色总是白色 |
|
R2_XORPEN |
显示的颜色是画笔颜色和屏幕颜色的异或结果,即:R2_COPYPEN ^ 屏幕颜色 |
返回值:
1. 如果函数调用成功,返回值是先前的混合模式(绘图模式);
2. 如果函数调用失败,返回值是 0。
备注:
1. 当使用一个画笔进行绘制时,实际上是在将画笔的像素颜色和目标显示表面的像素颜色按位进行布尔运算。
2. 对像素颜色执行一个按位布尔运算称为“光栅操作”(Raster Operation, ROP),简称“ROP”,因为只涉及两种像素颜色(即画笔和屏幕),所以这里的布尔运算就被称为“二元光栅操作”,或者“ROP2”。
3. 混合模式(绘图模式)仅支持光栅设备,并不支持矢量设备。




