Visual c++2010第三讲简单图形.ppt_第1页
Visual c++2010第三讲简单图形.ppt_第2页
Visual c++2010第三讲简单图形.ppt_第3页
Visual c++2010第三讲简单图形.ppt_第4页
Visual c++2010第三讲简单图形.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual c 2010第三个简单图形绘制、镶嵌、线绘制、1.1基础MoveTo()开始绘制线、弧、多边形时,将游标移至初始位置LineTo(),然后绘制从初始位置到其他点的直线Arc()。更新初始位置。AngleArc()绘制直线,然后绘制圆弧并更新初始位置。PolyDraw()绘制一系列直线和贝塞尔样条线PolyLine()。绘制一系列线段。PolyPolyLine()多描边属性由画笔的属性控制:Pen1.createpen (PS _ solid,2,RGB (255,0,0);/粉刷1 LOGPEN logpenLogpen.lopnStyle=PS _ DASHlog pen .

2、lopn width . x=1;log pen . lopnwidth . y=1;Logpen.lop ncolor=RGB (199,199,199);Pen2 .CreatePenIndirect(/粉刷3,oldpen=(cpen *) PDC-select object(,效果图形,2)。绘制形状,填充FillRect()用纯色填充矩形FillSolidRect()矩形InvertRect()。反转矩形颜色。ExtFloodFill()使用当前笔刷填充区域,提供的内容比FloodFill()更多。设备环境使用H B R U S H句柄指向粉刷对象。使用M F C创建B r u s

3、h对象时,首先创建C B r u s h类对象。GetBrushOrg获取当前笔刷的起点。SetBrushOrg指定选定设备上下文的下一个画笔的起点。FillRgn()填充区域。InvertRgn()反转区域的颜色。FrameRgn()绘制特定区域的边框Brush 1 .create solid brush (RGB (100、100、100);brush 2 . createhatchbrush(hs _ cross,RGB (200,200,200);LOGBRUSH logbrushlog brush . lb style=BS _ HOLLOW;/log brush . lbcolor

4、=;/logbrush . lbhash=;Brush3。CreateBrushIndirect(、实例2(继续)、old brush=(cbrush *)PDC-select object(,绘图文本之一,文本字符串输出ExtTextOut)tabbedtextout()在基于牙齿函数的表中的指定位置输出字符串。通过将字符串中的所有制表符转换为空格DrawText(),在指定的矩形字段中绘制文本,有三种茄子类型的文本属性。颜色、对齐方式和字体文本颜色的颜色可以通过使用函数SetTextColor()设置前景色(文本颜色)SetBkColor()来设置输出文本的背景色。绘制文本bis,文本方法

5、;对齐属性决定文本的对齐方式(如左对齐、右对齐或居中)。特别是TextOut()函数中的x、y变量,可以表示文本的左侧、右侧或底部。在默认对齐中,x,y表示文本的左上角,但是还有几种茄子的其他方法。要更改设备环境中的文本对齐属性,可以使用SetTextAlign()函数和以下标志值之一:ta _ TextOut()的x变量表示文本的左侧。TA _ L E F T表示首选项TA _ TOP er TextOut()中的y变量表示文本上方。TA _ TO P表示默认设置TA _ RIGHT er TextOut()中的y变量表示文本的右侧。计算文本的边界矩形,用于确定开始绘制文本的位置的TA _

6、CENTER ertextout()中的y变量表示文本中间TA _ BASELINE ertextout()中的y变量的基线TA _ BOTTOM ertextout()的yInt DrawText(const Cstring/如果成功,则返回文本高度。绘制的文本3、lpszString是指向要绘制的文本的指针。如果NCount为-1,则字符串必须以null结尾。NCount字符串中的字符数。如果为-1,则lpszString被视为指向空终止字符串的长指针。DrawText自动计算字符数。指向包含LpRect矩形(逻辑单元表示法)的Rect结构或Crect对象的指针。其中文本已格式化。NFor

7、mat指定格式化文本的方法。DT_BOTTOM可以是底部对齐的文本值组合(可以合并为运算符或位操作字符)。牙齿值必须与DT_SINGLELINE一起使用。DT_CALCRECT确定矩形的宽度和高度;对于多行文字,DrawText使用矩形扩展以适应lpRect指向的矩形和文本。对于单行文本,DrawText将调整矩形的右侧以与该文字行匹配。在这两种情况下,DrawText都返回格式化文本的高度,但不绘制。绘图文本3,DT_CENTER水平居中文本。DT_END_ELLIPSIS或DT_PATH _ELLIPSIS如果需要,将部分指定的文本替换为椭圆,以匹配指定的矩形大小。除非指定了DT_MODI

8、FYSTRING标志,否则不会修改指定的字符串。您可以指定DT_END_ELLIPSIS以取代字串结尾的字元,或指定DT_PATH_ELLIPSIS以取代字串中间的字元。如果字符串包含反斜杠(),则DT_PATH_ELLIPSIS将文本存储在最后一个可能的反斜杠之后。DT_EXPANDTABS扩展选项卡,每个选项卡中包含的默认字符数为8。DT_EXTERNALLEADING包含行高上的字体外部间距。通常,外部间距不包含在文本行的高度中。DT_LEFT文本左对齐。绘制文本4。lDT_MODIFYSTRING修改指定的字符串以匹配显示的文本。仅当指定了DT_END_ELLIPSIS或DT_ PAT

9、H_ELLIPSIS标志时,牙齿标志才起作用。绘制但不剪切DT_NOCLIP。DrawText在使用DT_NOCLIP后总是运行得更快。DT_NOPREFIX关闭前缀文字。DrawText通常帮助前缀CRect rect。Rect.top=200Rect.left=200Rect.bottom=250Rect.right=250PDC-DrawText(str,GetWindowRect(,连续4个实例,Rect.right=Rect)。width();Rect.bottom=Rect。height();rect . left=rect . top=0;Pdc-fillsolidrect (r

10、ect,3360 getsyscolor(color _ 3d face);Pdc-drawtext (strinfo,rectcpoint (0,1),dt _ singleline | dt _ left);PDC-settext color(:3360 getsyscolor(color _ 3d shadow);Pdc-drawtext (strinfo,rect,dt _ singleline | dt _ left);PDC-settext color(old color);Pdc-选取物件(pold font);案例5,CFont MyFont/逻辑字体变量宣言MyFont CF

11、ont * pOldFontCRect rect/定义矩形变量rect,客户区域CString caption=_T(TextOut()函数输出的透明库存字体OEM_FIXED_FONT!);PDC-selectstockobject(OEM _ fixed _ font);/选择库存字体GetClientRect(rect);/导入客户区域的区域将保存在rect,pDC-SetTextAlign(TA_BASELINE)中。/将文本对齐方式设置为将点与选定字体的基线对齐,与pDC-SetBkMode(TRANSPARENT)对齐。/背景模式不透明PDC-settextcolor设定(RGB

12、(255,0,0);/将文本颜色设置为红色pDC-SetBkColor(RGB(0,0,255)。/将文本背景颜色设置为蓝色PDC-textout (rect.right/6、rect.bottom/6、caption)。/输出文本,myfont.createpointfont (140,_ t(arial);/CreatePointFont函数中创建的逻辑字体poldfont=PDC-selectobject(,cstringcaption1=_ t(通过CreatePointFont创建的extts)Pdc-exttextoutw (currentx、currenty、eto _ opaq

13、ue、crect (currentx、currenty-30、currentx 300)/还原系统旧字体、绘图位图和图标,在DrawIcon指定位置绘制图标BitBlt在指定设备环境中复制位图,通常从磁盘加载或在内存中创建,如上所述,StretchBlt与BitBlt()基本相同。但是,您希望将目标PlgBlt位图扩展或压缩到在源设备上下文的指定矩形中指定的设备上下文中指定的平行多边形。执行颜色数据位的位块传递弗洛伊德pil使用当前笔刷填充区域使用当前笔刷填充Ext弗洛伊德pil。与FloodFill成员函数相比,具有更大的灵活性MaskBlt使用指定的掩码和光栅操作合并源和目标位图颜色数据,

14、绘制位图和图标,创建PatBlt位要素MaskBlt使用指定的掩码和光栅操作创建源和目标位图颜色数据实例1:hicon hicon=afxgetapp()-loop PDPx指定目标矩形左上角的逻辑x坐标。y指定目标矩形左上角的逻辑y坐标。NWidth指定目标矩形和源位图的宽度(以逻辑单位表示)。NHeight指定目标矩形和源位图高度(以逻辑单位表示)。PSrcDC是指向cDC对象的指针,用于标识要复制的位图设备上下文。如果DwRop指定不包含源的光栅操作,则必须为NULL。指定XSrc源位图左上角的逻辑x坐标。指定YSrc源位图左上角的逻辑y坐标。绘制、位图和图标。DwRop指定要执行的光栅

15、操作。光栅作业代码定义GDC合并输出作业(例如当前粉刷、可能的源位图和目标位图)的颜色的方式。以下是dwRop的光栅操作代码及其说明。BLACKNESS所有输出都变黑。反转DSTINVERT目标位图。MERGECOPY使用布尔AND运算执行源位图一致性和特征功能。MERGEPAINT使用布尔OR操作匹配,要素使用源位图功能。NOTSRCCOPY复制反向源位图到目标。绘制、位图和图标。NOTSRCERASE使用布尔OR操作反转源和目标位图结果。PATCOPY将要素复制到目标位图。PATINVERT使用布尔XOR操作匹配位图和要素并将其作为目标。PATPAINT使用布尔OR操作匹配和反转源位图和功

16、能。与布尔OR操作匹配,牙齿操作的结果与目标位图。SRCAND使用布尔AND操作提供像素和源位图匹配以及目标像素。SRCCOPY复制源位图-目标位图。SRCERASE反转目标位图和布尔AND操作匹配结果和源位图,绘制位图和图标,SRCINVERT使用布尔XOR操作符合目标像素和源位图。SRCPAINT使用布尔OR操作符合目标像素和源位图。WHITENESS所有输出都变成白色。CDC * memDC=new CDCmem DC-CreateCompatibleDC(pDC):CB itmap位图;bitmap . createcompatiblebitmap(PDC,20,20);MemDC-SelectObject(指向lpPoint逻辑空间中包含三个点的数组的指针。将三个顶点指定给一个目标平行四边形。源矩形的左上角映射

温馨提示

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

评论

0/150

提交评论