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

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

阅读更多
个人分类: MFC
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭