资源描述:
《MFC-Windows应用程序设计-第4章-图形课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFCWindows应用程序设计第4章图形DC和GDI4.1CDC类4.2CPen类4.3CBrush类4.4绘图模式4.5CDC的其他派生类4.7文本和CFont类4.64.1DC和GDI4.1.1设备描述环境DC(DeviceContext,DC):在Windows中,表现为一个叫做图形设备描述表的数据结构,它描述虚拟图形设备的属性,所以也叫做图形设备描述环境。应用程序图形设备描述环境设备驱动程序物理图形显示设备图4-1图形设备描述表的基本概念4.1DC和GDI4.1.2W
2、indows的GDIGDI:图形设备接口,绘图相关操作的函数集合。4.1DC和GDI表4.1GDI中的绘图工具及其对应MFC类对象名称类名说明Bitmap(位图)CBitmap用户可以利用来表示图像,也可以利用它来创建画刷。Brush(画刷)CBrush“画刷”定义了一种位图形式的象素,利用它可对区域内部填充颜色或样式。Font(字体)CFont“字体”是一种具有某种风格和尺寸的所有字符的完整集合。Palette(调色板)CPalette“调色板”是一种颜色映射接口,绘图时可以使用的颜色集。Pen(画笔
3、)CPen“画笔”是一种用来画线及绘制有形边框的工具。CGdiObject4.2CDC类4.2.1CDC类及其派生类CDC类封装了绘图所需要的所有成员函数,以及各种类型的Windows图形设备描述环境的全部功能。CObjectCDCCMetaFileDCCWindowDCCClientDCCPaintDC图4-2MFC设备描述环境类层次结构OnDraw窗口用户区域整个窗口图元文件WM_PAINT4.2CDC类1、画线BOOLLineTo(intx,inty);BOOLLineTo(POINTpoint)
4、;LineTo从当前位置画直线到参数指定位置。CPointMoveTo(intx,inty);CPointMoveTo(POINTpoint);MoveTo从当前位置把画笔移到参数指定位置。4.2.2CDC类中常用成员函数4.2CDC类2、矩形和圆角矩形BOOLRectangle(intx1,inty1,intx2,inty2);BOOLRectangle(LPCRECTlpRect);BOOLRoundRect(intx1,inty1,intx2,inty2,intx3,inty3);BOOLRou
5、ndRect(LPCRECTlpRect,POINTpoint);4.2.2CDC类中常用成员函数4.2CDC类3、椭圆和圆弧BOOLEllipse(intx1,inty1,intx2,inty2);BOOLEllipse(LPCRECTlpRect);BOOLArc(intx1,inty1,intx2,inty2,intx3,inty3,intx4,inty4);BOOLArc(LPCRECTlpRect,POINTptStart,POINTptEnd);4.2.1CDC类中常用成员函数4.2CDC
6、类练习:1、用鼠标控制直线、矩形、椭圆的绘制。4.2.1CDC类中常用成员函数2、用鼠标控制绘制任意多边形提示以直线为例,将左键按下时坐标点作为直线开始点,左键弹起作为直线终点,在左键弹起消息处理函数里绘制直线。提示鼠标第一次左键按下的点作为多边形的开始点,保存开始点,以后每一次左键弹起的点作为多边形的一个顶点,直到左键弹起点和开始的位置接近结束。也可以利用CDC类中绘制多边形的函数来完成。4.2CDC类4.2.1CDC类中常用成员函数作业:用鼠标控制任意线的绘制。作业本:P1104-1,4-2,4-3
7、,4-4请查看MFC帮助文件,找出绘制点、饼形图函数,尝试绘制相应图形。4.2CDC类4、点COLORREFSetPixel(intx,inty,COLORREFcolor);COLORREFSetPixel(POINTpoint,COLORREFcolor);COLORREFGetPixel(intx,inty);COLORREFGetPixel(POINTpoint);4.2.1CDC类中常用成员函数COLORREFRGB(BYTEbRed,BYTEbGreen,BYTEbBlue);//bR
8、ed,bGreen,bBlue//取值0~2554.2CDC类5、位图函数BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwRop);BitBlt:把一个DC中的位图复制到另一个DC中。4.2.1CDC类中常用成员函数dwRop:指定光栅操作。光栅操作模式说明了GDI是如何组合输出操作中的颜色,包括当前画刷、可能的源位图和目标位图。可以为