创立画笔画刷颜色mfc_第1页
创立画笔画刷颜色mfc_第2页
创立画笔画刷颜色mfc_第3页
创立画笔画刷颜色mfc_第4页
创立画笔画刷颜色mfc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——创立画笔,画刷,颜色mfc?

1.创立画笔

当用户创立一个用于绘图的设备环境对象时,系统自动将一个像素单位宽度的实黑线的画笔作为默认画笔。假使用户欲使用其他性质的画笔,首先就要创立该画笔。

创立画笔可以采用两种方法。一种方法是通过调用画笔Cpen类的一个带参构造函数来构造一个Cpen类画笔对象。

CpenPen(intnPenStyle,intnWidth,COLORREFrgbColor)其中第一个参数用于指定画笔样式;其次个参数用于指定画笔宽度;第三个参数用于指定画笔颜色。画笔的样式说明参考表3.3;画笔的颜色可以通过Windows提供的GRB宏来设置,其使用格式为:

RGB(nRed,nGreen,nBlue)

参数nRed、nGreen、nBlue分别表示红、绿、蓝分量值,数值范围为0~255。如RGB(0,0,0)表示黑色;RGB(255,0,0)表示红色。表3.4列出了常用颜色的RGB值。

表3.3画笔的样式说明样式PS_SOLIDPS_DOTPS_DASHPS_DASHDOTPS_DASHDOTDOTPS_NULLPS_INSIDEFRAME注:各种虚线只有当线宽为1时才有效。表3.4常用颜色的RGB值颜色浅红55浅绿浅蓝浅黄55浅青紫色55白色5525525505520552黑色05502552552灰色92019202深青05520深黄2802819201281281112深蓝020深绿RGB分量值200颜色深红280280280110RGB分量值100说明实线点线虚线点划线双点划线空的边框边框试验下面的代码创立了一个蓝色实线画笔:

CPenPen(PS_SOLID,1,RGB(0,0,255));

创立画笔的另一个方法是首先声明一个CPen对象,然后调用CPen类的成员函数CreatePen()创立特定的画笔。

CPenPen;

Pen.CretePen(intnPenStyle,intnWidth,COLORREFrgbColor);如下代码同样创立一个蓝色实线画笔:CPenPenNew;

PenNew.CreatePen(PS_SOLID,1,RGB(0,0,255));

当需要屡屡改变画笔的属性时,多采用这种方法。

?

2.选择创立的画笔到设备环境中

创立画笔后,必需调用成员函数CDC::SelectObject()将创立的画笔选入设备环境对象中。假使选择成功,函数SelectObject()将返回原来画笔对象的指针。一般状况下,在选择新的画笔时应当保存原来的画笔对象,以备恢复。代码如下:

CPen*pPenOld;

pPenOld=pDC->SelectObject(

?

3.删除画笔

创立和选择画笔后,就可以使用该画笔对象进行绘图了。绘图完成后,为了及时释放内存资源,应当调用成员函数CDC::SelectObject()恢复以前保存的画笔对象;调用成员函数CgdiObject::DeleteObject()删除当前画笔对象。代码如下:

pDC->SelectObject(pPenOld);

PenNew.DeleteObject();

成员函数DeleteObject()用于删除底层的GDI对象,假使由于不慎,删除一个设备环境对象正在使用的GDI对象,将会引起应用程序的运行异常。

?

1.创立画刷

画刷有三种基本类型:纯色画刷、阴影画刷和图案画刷。创立画刷的一种方法是通过调用CBrush类三个不同的构造函数创立这三种类型的画刷。

创立纯色画刷:

CBrushbrush(RGBColor);

此构造函数的参数指定纯色画刷的颜色。如下创立一个红色画刷:

CBrushbrush(RGB(255,0,0));创立阴影画刷:

CBrushbrush(BrushStyle,RGBColor);

此构造函数的第一个参数指定画刷的样式,其次个参数指定颜色,画刷样式参见例3.2。如下创立一个交织的绿色阴影画刷:

CBrushbrush2(HS_CROSS,RGB(0,255,0));创立图案画刷:

CBrushbrush(

此构造函数的参数指定画刷所使用的位图,该位图必需先装入内存中。

创立画刷的另一个方法,也可以先声明一个CBrush类画刷对象,然后调用初始化成员函数创立特定的画刷。

常见的成员函数有:CreateSolidBrush()CreateHatchBrush()CreatePatternBrush()下面代码同样创立一个交织的绿色阴影画刷。CBrushBrushNew;

BrushNew.CreateHatchBrush(HS_CROSS,RGB(0,255,0));

创立纯色画刷创立阴影画刷创立图案画刷?

2.选择画刷

创立画刷后,同样必需调用成员函数CDC::SelectObject()将创立的画刷选入设备环境对象中,同时保存以前的画刷。

CBrush*pBrushOld;

pBrushOld=pDC->SelectObject(

?

3.删除画刷

同样为了释放资源,在使用完成画刷对象后,也要及时删除画刷对象,恢复原来的画刷对象。

?

1.文字信息显示

文字信息显示的成员函数为:

BOOLTextOut(intx,inty,LPCTSTRlpszString);

在指定坐标(x,y)处显示字符串lpszString的内容,显示成功返回非0,否则返回0。

?

2.画点

画点的成员函数为:

COLORREFSetPixel(intx,inty,COLORREFcolor);COLORREFSetPixel(POINTpoint,COLORREFcolor);

该函数在指定坐标(用参数x,y或point给出)处按给定颜色(color)画点,返回值为原来此坐标颜色。

?

3.取指定坐标点的颜色

取指定坐标点的颜色的成员函数为:COLORREFGetPixel(intx,inty)const;COLORREFGetPixel(POINTpoint)const;返回值为指定坐标处的颜色。

?

4.画线

画线工作需经两步完成:首先确定线的起始端位置,这可通过调用成员函数MoveTo完成,其原型为:

CpointMoveTo(intx,inty);

CpointMoveTo(POINTpoint);

MoveTo将绘图位置移至指定坐标处,并返回移动前的绘图位置。确定了线的起点后,即可使用成员函数LineTo画线:

BOOLLineTo(intx,inty);BOOLLineTo(POINTpoint);其参数为线终点的坐标。

?

5.绘制矩形

绘制矩形的成员函数为:

BOOLRectangle(intx1,inty1,intx2,inty2);BOOLRectangle(LPCRECTlpRect);

其参数为需要绘制的矩形的左上角坐标(x1,y1)和右下角坐标(x2,y2)。

?

6.绘制椭圆

绘制椭圆的成员函数为:

BOOLEllipse(intx1,inty1,intx2,inty2);

BOOLEllipse(LPCRECTlpRect);

其参数的含义为所绘椭圆的包含矩形的左上角和右下角坐标。

?

7.画多边形

画多边形的成员函数为:

BOOLPolygon(LPPOINTlpPoints,intnCount);

其中参数lpPoints为一LPPOINT类型的指针,可用CPoint数组(存放多边形的各顶点坐标)作为实参。参数nCount为顶点个数。例如:

CPaintDCdc(this);

CPointpointPoly[3];

pointPoly[0]=CPoint(100,100);pointPoly[1]=CPoint(200,100);pointPoly[2]=CPoint(200,200);dc.Polygon(pointPoly,3);

在窗口客户区相应位置画出一个三角形。

?

8.获取客户区的坐标

为了某些绘图效果,可能需要知道框架窗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论