第26周-window程序设计(基础篇)-第5章(图形基础)-填入空隙和填入区域
2016-09-26 23:02
204 查看
1、填入空隙和填入区域:
/*
填入空隙:点和虚线间的空隙
内定背景模式为OPAQUE,Windows使用背景色来填入空隙,内定的背景色为白色。
*/
SetBkColor(hdc,crColor);
将背景模式转换为TRANSPARENT,可以阻止Windows填入空隙
SetBkMode(hdc,TRANSPARENT);
/*绘图方式:图素间的位布尔运算叫做「位映像运算」,即ROP。而只涉及两种图素(画笔和目标),因此这种布尔运算又称为「二元位映像运算」,简记为「ROP2」*/
ROP2的16种绘图模式:
R2_BLACK //不管画笔和北京色为何种色彩,总画成黑色
R2_NOTMERGEPEN
R2_MASKNOTPEN
R2_NOTCOPYPEN // 画笔为黑色,则画成白色;画笔为白色,则画成黑色。
R2_MASKPENNOT
R2_NOT //总是翻转目标色彩来决定线的颜色
R2_XORPEN
R2_NOTMASKPEN
R2_MASKPEN
R2_NOTXORPEN
R2_NOP //保持不变
R2_MERGENOTPEN
R2_COPYPEN(内定)
R2_MERGEPENNOT
R2_MERGEPEN
R2_WHITE //总画成白色
/*在设备内容中设定新的绘图模式*/
SetROP2(hdc,iDrawMode);
iDrawMode = GetROP2(hdc);
/*Windows的七个带边缘的填入图形函数*/
函数图形
Rectangle 直角矩形
Ellipse 椭圆
RoundRect 圆角矩形
Chord 椭圆周上的弧,两端以弦连接
Pie 椭圆上的饼图
Polygon 多边形
PolyPolygon 多个多边形
/*Windows定义六种现有画刷:*/
WHITE_BRUSH
LTGRAY_BRUSH
GRAY_BRUSH
DKGRAY_BRUSH
BLACK_BRUSH
NULL_BRUSH (也叫HOLLOW_BRUSH)
HBRUSH = hBrush;//画刷句柄变量
hBrush = GetStockObject(GRAY_BRUSH); //取得句柄
SelectObject(hdc,hBrush);//将画刷选进设备内容
/*画一个没有边界框的图形*/
SelectObject(hdc,GetStockObject(NULL_PEN));
/*画出图形的边界框,但不填入内部*/
SelectObject(hdc,GetStockObject(NULL_BRUSH));
/*
填入空隙:点和虚线间的空隙
内定背景模式为OPAQUE,Windows使用背景色来填入空隙,内定的背景色为白色。
*/
SetBkColor(hdc,crColor);
将背景模式转换为TRANSPARENT,可以阻止Windows填入空隙
SetBkMode(hdc,TRANSPARENT);
/*绘图方式:图素间的位布尔运算叫做「位映像运算」,即ROP。而只涉及两种图素(画笔和目标),因此这种布尔运算又称为「二元位映像运算」,简记为「ROP2」*/
ROP2的16种绘图模式:
R2_BLACK //不管画笔和北京色为何种色彩,总画成黑色
R2_NOTMERGEPEN
R2_MASKNOTPEN
R2_NOTCOPYPEN // 画笔为黑色,则画成白色;画笔为白色,则画成黑色。
R2_MASKPENNOT
R2_NOT //总是翻转目标色彩来决定线的颜色
R2_XORPEN
R2_NOTMASKPEN
R2_MASKPEN
R2_NOTXORPEN
R2_NOP //保持不变
R2_MERGENOTPEN
R2_COPYPEN(内定)
R2_MERGEPENNOT
R2_MERGEPEN
R2_WHITE //总画成白色
/*在设备内容中设定新的绘图模式*/
SetROP2(hdc,iDrawMode);
iDrawMode = GetROP2(hdc);
/*Windows的七个带边缘的填入图形函数*/
函数图形
Rectangle 直角矩形
Ellipse 椭圆
RoundRect 圆角矩形
Chord 椭圆周上的弧,两端以弦连接
Pie 椭圆上的饼图
Polygon 多边形
PolyPolygon 多个多边形
/*Windows定义六种现有画刷:*/
WHITE_BRUSH
LTGRAY_BRUSH
GRAY_BRUSH
DKGRAY_BRUSH
BLACK_BRUSH
NULL_BRUSH (也叫HOLLOW_BRUSH)
HBRUSH = hBrush;//画刷句柄变量
hBrush = GetStockObject(GRAY_BRUSH); //取得句柄
SelectObject(hdc,hBrush);//将画刷选进设备内容
/*画一个没有边界框的图形*/
SelectObject(hdc,GetStockObject(NULL_PEN));
/*画出图形的边界框,但不填入内部*/
SelectObject(hdc,GetStockObject(NULL_BRUSH));
相关文章推荐
- 第26周-window程序设计(基础篇)-第5章(图形基础)-Polygon函数和多边形填入方式
- 第26周-window程序设计(基础篇)-第5章(图形基础)-关于颜色
- 第26周-window程序设计(基础篇)-第5章(图形基础)-使用现有画笔Stock Pens
- 第26周-window程序设计(基础篇)-第5章(图形基础)-点和线
- 第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-取得设备内容的多方法
- 第26周-window程序设计(基础篇)-第5章(图形基础)-贝塞尔曲线BEZIER.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-DEVCAPS1.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-SINEWAVE.C正弦波
- 第25周-window程序设计(基础篇)-第4章-GDI图形设备接口
- 【JAVA语言程序设计基础篇】--图形-- 绘制封装表格类的思考
- 【JAVA语言程序设计基础篇】--图形--练习绘制时钟
- 【JAVA语言程序设计基础篇】--图形--一些练习
- 【JAVA语言程序设计基础篇】--图形-- 三种时钟--增强对类的理解和应用
- 【JAVA语言程序设计基础篇】--图形用户界面基础--一些总结
- 第25周-window程序设计(基础篇)-第3章-注册窗口类别1
- 【JAVA语言程序设计基础篇】--图形--练习绘制多边形
- 【JAVA语言程序设计基础篇】--图形--练习绘制弧形
- 第25周-window程序设计(基础篇)-第2章-实例ScreenSize.c
- 基础知识(7)- 图形程序设计