[MFC]设备描述表属性、绘图模式

本文介绍了MFC中设备描述表(DC)的属性,如文本颜色、背景颜色和背景模式等,并详细讲解了如何设置和获取这些属性。同时,文章探讨了GDI的绘图模式,包括不同绘图模式的工作原理和常用模式,如R2_COPYPEN、R2_NOT、R2_XORPEN等,帮助理解如何通过布尔运算提升绘图效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 设备描述表的属性:

    1) 其实就是CDC结构中的一些字段,这些字段会影响GDI画图时的一些表现;

    2) 通常这些表现在使用具体的画图函数时无法设置,比如DrawText画字时字的颜色、LineTo画点划线时点和线段之间的填充颜色等,这些属性无法通过具体的画图函数来指定;

    3) 以上谈到的这些属性都属于DC本身的全局性的属性,想要设定必须通过CDC的Set系列等函数来指定;


2. 几种常用的DC属性的设置和获取:(设备描述表属性就简称为DC属性了),按照Set、Get和默认值排列

    1) 文本颜色:SetTextColor、GetTextColor、BLACK

    2) 背景颜色:SetBkColor、GetBkColor、WHITE,该属性决定了输出的文本字符后面的颜色,即文本的背景色,以及点划线中点线之间的填充色,还有阴影填充线之间的填充色

    3) 背景模式:SetBkMode、GetBkMode、OPAQUE,该属性决定前面的背景颜色是否被忽略,如果为TRANSPARENT则将忽略背景色(透明,颜色伴随视图区的颜色),如果为OPAQUE则为不透明,BkColor指定的颜色将生效

    4) 当前位置:MoveTo、GetCurrentPosition、(0, 0)

    5) 画笔、画刷、字体:Set和Get都是SelectObject,默认分别为BLACK_PEN、WHITE_BRUSH、SYSTEM_FONT

    6) 还有非常重要的绘图模式和映射模式,这将在后面讲到


3. 绘图模式:

    1) GDI在绘图的时候并只是简单将像素点复制到相应位置达到画图的目的,GDI还提供了其它多种多样的绘图模式;

    2) 有时候为了达到增大绘图效率和速率的目的采用对像素点进行布尔运算的形式来绘图,比如在白板上画黑线,则只需要对画线的白色像素点做NOT运算即可得到黑色的像素点,而我们的绘图模式就是一些列AND、OR、NOT的组合;

    3) 绘图模式:SetROP2、GetROP2、R2_COPYPEN,其中ROP2即Raster Operation To的缩写,即光栅操作的意思,默认的R2_COPYPEN就是简单的复制像素点的操作,但是还有其它大量丰富的操作,R2就是Raster To的缩写;

    4) 常用的绘图模式:

R2_NOP:dest = dest

R2_NOT:dest = NOT dest

R2_BLACK:dest = BLACK

R2_WHITE:dest = WHITE

R2_COPYPEN:dest = src

R2_NOTCOPYPEN:dest = NOT src

R2_MERGEPEN:dest = src OR dest

R2_MASKPEN:dest = dest AND src

R2_XORPEN:dest = dest XOR src

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值