鱼C论坛

 找回密码
 立即注册
查看: 4979|回复: 1

[API档案] SetROP2

[复制链接]
发表于 2014-11-2 20:18:04 | 显示全部楼层 |阅读模式

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

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

x
函数功能:

SetROP2 函数用于设置当前的前景色混合模式(绘图模式)。

GDI 使用前景色混合模式,将画笔的颜色和画线显示区域的颜色混合后显示出来。


API 函数原型:

注释:_In_ 说明该参数是输入的。
  1. int SetROP2(
  2.   _In_  HDC hdc,
  3.   _In_  int fnDrawMode
  4. );
复制代码


参数解析:

参数 含义
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. 混合模式(绘图模式)仅支持光栅设备,并不支持矢量设备。

【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

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

使用道具 举报

发表于 2023-6-5 18:20:49 | 显示全部楼层
RGB怎么交集运算呢?
PS的混合模式使用的加减乘除运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 07:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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