setbktcolor设置背景色

setbktcolor设置背景色

函数setbkcolor用于设置绘图时的背景颜色。其调用格式为:

setbkcolor(color);

其中color为一个整型数值,代表所取的颜色,颜色与前景色设置相同。

9-8围棋棋盘绘制,实现用红色、蓝色交替绘制棋盘线

#include <graphics.h>

#include <conio.h>

void main()

{

int x,y;

    initgraph(640, 480);

    for(y=30,x=40; y<480;y+=30,x+=40)

    {

          if (y/30% 2 ==1||x/40%2==1)     /* 判断奇数行偶数行*/

             setcolor(RGB(255,0,0));

          else

             setcolor(RGB(0,0,255));

          line(0,y,640,y);

line(x,0,x,480);

    }

    getch();

    closegraph();

}

程序运行结果:

setbktcolor设置背景色

9-7 围棋棋盘效果图

3.setlinestyle设置线型

setlinestyle这个函数用于设置当前画线样式。

void setlinestyle(

    const LINESTYLE* pstyle

);

void setlinestyle(

    int style,

    int thickness = 1,

    const DWORD *puserstyle =NULL,

    DWORD userstylecount = 0

);

参数:

1.Pstyle为指向画线样式 LINESTYLE 的指针。

2.Style为画线样式,由直线样式、端点样式、连接样式三类组成。可以是其中一类或多类的组合。同一类型中只能指定一个样式。

直线样式见表9-3所示。

9-3 直线样式含义表

 

 
 

含义

 
 

PS_SOLID

 
 

线形为实线。

 
 

PS_DASH

 
 

线形为虚线。

 
 

PS_DOT

 
 

线形为点线。

 
 

PS_DASHDOT

 
 

线形为虚点线。

 
 

PS_DASHDOTDOT

 
 

线形为双点线。

 
 

PS_NULL

 
 

线形为不可见。

 
 

PS_USERSTYLE

 
 

线形样式为用户自定义,有参数 puserstyle 和 userstylecount 指定。

 

端点样式见表9-4所示:

9-4 端点样式         

 

 
 

含义

 
 

PS_ENDCAP_ROUND

 
 

端点为圆形。

 
 

PS_ENDCAP_SQUARE

 
 

端点为方形。

 
 

PS_ENDCAP_FLAT

 
 

端点为平坦。

 

连接样式见表9-5所示:

9-5 连接样式   

 

 
 

含义

 
 

PS_JOIN_BEVEL

 
 

连接处为斜面。

 
 

PS_JOIN_MITER

 
 

连接处为斜接。

 
 

PS_JOIN_ROUND

 
 

连接处为圆弧。

 

3.Thickness:线的宽度,以像素为单位。

4.puserstyle:用户自定义样式数组,仅当线型为 PS_USERSTYLE 时该参数有效。

数组第一个元素指定画线的长度,第二个元素指定空白的长度,第三个元素指定画线的长度,第四个元素指定空白的长度,以此类推。

5.userstylecount:用户自定义样式数组的元素数量

返回值:(无)

示例:

以下局部代码设置画线样式为点划线:

setlinestyle(PS_DASHDOT);


以下局部代码设置画线样式为宽度 3 像素的虚线,端点为平坦的:

setlinestyle(PS_DASH | PS_ENDCAP_FLAT, 3);


以下局部代码设置画线样式为宽度 10 像素的实线,连接处为斜面:

setlinestyle(PS_SOLID | PS_JOIN_BEVEL, 10);


以下局部代码设置画线样式为自定义样式(画 5 个像素,跳过 2 个像素,画 3 个像素,跳过 1 个像素……),端点为平坦的:

DWORD a[4] = {5, 2, 3, 1};

setlinestyle(PS_USERSTYLE | PS_ENDCAP_FLAT, 1, a, 4);