Visualc2010第三讲简单图形.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
绘制位图和图标 对源设备上下文指定的矩形到给定设备上下文中平行四边形的颜色数据实行位块(bit-block)转换。如果位掩码的句柄代表一个有效的位图,函数利用该函数对源矩形的颜色数据位进行屏蔽。平行四边形的第四个顶点(D)是将前三个点(A,B,C)定义为矢量后,经D=B+C-A计算得到。如果存在位掩码1,表示源像素色将会拷贝给目标位图,为0表示目标位图的像素不会被改变。如果掩码矩形小于源矩形和目标矩形,函数将复制掩码模式。 在源设备上下文中允许度量形式转换和解释。但不允许选择和剪切转换,掩码位图不是黑白位图,出错。目标设备上下文的扩展模式决定了像素如何被扩展或压缩。如果源设备上下文标识了增强元文件设备上下文,记录增强元文件时,则出错。 ? BOOL StretchBlt(int x ,int y ,int nWidth,int nHeight,CDC*pSrcDC,intxSrc,int ySrc, int nSrcWidth,int nSrcHeight.DWORD dwRop) 绘制位图和图标 将源矩形中的位图拷贝到目标矩形中,如果有必要,可以扩展或压缩该位图使其与目标矩形尺寸吻合。 如果nSrcWidth和nWidth或nSrcHeight和nHeight的符号不同,StretchBlt将为位图创建一个镜像。如果nSrcWidth和nWidth符号不同,函数沿X轴创建镜像。如果nSrcHeight和nHeight符号不同,函数沿Y轴创建镜像。 ? 绘制位图和图标 BOOL MaskBlt(int x ,int y,int nWidth ,int nHeight,CDC* pSrcDC,int xSrc,intySrc,CBitmap maskBitmap,int xMask ,int yMask,DWORD dwRop); maskBitmap在源设备上下文中黑白掩码位图与彩色位图的标识。xMaskmaskBitmap设定的掩码位图的水平像素偏移量。yMaskmaskBitmap设定的掩码位图的水平像素偏移量。 使用给定的掩码和光栅操作组合源位图和目标位图中的彩色数据。maskBitmap设置的掩码值为1,表明dwRop指定的前景光栅操作代码应在该位置上得以应用。maskBitmap设置的掩码值为0,表明dwRop指定的背景光栅操作代码应在该位置上得以应用。如果光栅操作需要源对象,掩码矩形必须覆盖源矩形,否则会导致失败。如果光栅操作不需要源对象,掩码矩形必须覆盖目标矩形,否则会导致失败。 Visual c++2010第三讲简单图形绘制 主讲 朱世华 一 画线 1.1 基本知识 MoveTo( ) 开始画线、弧和多边形时,把光标移动到一个初始位置 LineTo( ) 画一条从初始位置到另一个点的直线 Arc( ) 画一段弧 ArcTo( ) 画一段弧,并更新初始位置 AngleArc( ) 画一条线,然后画一段弧,并更新初始位置 PolyDraw( ) 画一系列线段和Bezier样条 PolyLine( ) 画一系列线段 PolyPolyLine( ) 画多个系列线条 ??? 画线属性是通过画笔的属性来控制 1.2 实例 CPen *oldpen,pen1,pen2,pen3; ? ??? pen1.CreatePen(PS_SOLID,2,RGB(255,0,0));//画笔1 ? ??? LOGPEN logpen; ??? logpen.lopnStyle = PS_DASH; ??? logpen.lopnWidth.x? = 1; ??? logpen.lopnWidth.y? = 1; ??? logpen.lopnColor = RGB(199,199,199); ??? pen2.CreatePenIndirect(logpen);//画笔2 ? ??? pen3.CreatePen(PS_USERSTYLE| PS_ENDCAP_FLAT,3,RGB(100,120,120));//画笔3 ? ??? oldpen = (CPen *)pDC-SelectObject(pen1); ??? pDC-MoveTo(100,100);?? //画线 ??? pDC-LineTo(200,200); ? ??? pDC-SelectObject(pen2); ??? pDC-Arc(CRect(200,200,400,400),CPoint(200,200), CPoint(200,400)); //画圆弧 ? ??? pDC -SelectObject(pen3); ??? POINT pt[4] = {{10,10},{15,15},{20,40},{50,70}}; ??? BYTE style[4]

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档