第10章 Windows图形处理与文本输入输出.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 Windows图形处理与文本输入输出

第10章 Windows图形处理与文本输入输出;10.1 设 备 环 境;10.1.1 设备环境类;图10.1 设备环境和GDI;1.CPaintDC;2.CClientDC;3.CWindowDC;4.CMetaFileDC;10.1.2 映射模式;1.MM_TEXT;2.固定比例的映射模式;3.可变比例的映射模式;10.2 绘图;10.2.1 画笔;表10.1 线型的定义及其说明;;;【示例10.1】;【示例10.2】;;10.2.2 画刷;其函数原型有下面3种形式: CBrush( COLORREF crColor ); //创建实心画刷 CBrush( int nIndex, COLORREF crColor );//创建填充画刷 CBrush( CBitmap* pBitmap ); //创建利用pBitmap指向的位图作为填充的画刷 参数crColor指定了画刷的前景色,nIndex指定了画刷的填充样式,它的取值如下所示。 HS_BDIAGONAL:从左到右向下45°斜线。 HS_CROSS:十字线。 HS_DIAGCROSS:45°交叉线。 HS_FDIAGONAL:从左到右向上45°斜线。 HS_HORIZONTAL:水平线。 HS_VERTICAL:垂直线。;除了使用构造函数创建画刷外,还可以利用如下方法创建画刷。 BOOL CreateSolidBrush( COLORREF crColor ); //创建实心画刷 BOOL CreateHatchBrush( int nIndex, COLORREF crColor ); //创建填充画刷 BOOL CreatePatternBrush( CBitmap* pBitmap ); //创建pBitmap指向位图为填充的画刷 BOOL CreateDIBPatternBrush( HGLOBAL hPackedDIB, UINT nUsage ); //用指定的DIB创建画刷 BOOL CreateSysColorBrush( int nIndex ); //创建系统颜色的画刷 画刷的使用与画笔一样,创建好画刷以后需要利用CBrush* SelectObject( CBrush* pBrush );将画刷选入设备环境,这时才可以使用此画刷。;【示例10.3】;10.2.3 绘图相关的数据类型;1.COLORREF;;2.CPoint;3.CSize;4.CRect;表10.2 CRect的成员函数;10.3 绘 图 实 例;10.3.1 绘图函数介绍;1.绘制点和线;;;;;2.绘制曲线;;3.绘制矩形和多边形;;;10.3.2 刷新/重绘图形;1.刷新请求;2.刷新请求的响应;;3.窗口的重绘;10.3.3 创建简单绘图程序;【示例10.4】;;;;;;;;;;图10.2 运行结果;图10.3 “绘制图形”下拉菜单;10.3.4 使用区域绘制图形;表10.3 CRgn的常用成员函数;上面是CRgn类常用的成员函数,其中CombineRgn()函数是进行几何计算的函数,其参数的取值如下所示。 RGN_AND:两个区域相交。 RGN_COPY:复制区域1。 RGN_DIFF:得到区域1中不包含在区域2中的部分。 RGN_OR:合并两个区域。 RGN_XOR:两个区域不相交部分。 ?注意:CombineRgn()函数和CopyRgn()函数的返回值为整型变量,代表具体操作的结果。包括区域是否为空,操作是否成功等。 上面介绍了CRgn类进行区域操作的基本函数,在应用中可以设置区域以后,利用函数进行计算得到其他区域。下面通过一个实例介绍CRgn的用法。;【示例10.5】;图10.4 运行结果;;10.4 文本;10.4.1 字体的结构;LOGFONT的结构如下: typedef struct tagLOGFONT { // lf LONG lfHeight; //字体的高度 LONG lfWidth; //字体的宽度 LONG lfEscapement; //字体相对于x轴的倾斜度 LONG lfOrientation; //字体基准线与x轴之间夹角 LONG lfWeight; //字体的粗细,取值0~1000 BYTE lfItalic; //非零表示斜体 BYTE lfUnderline; //非零表示有下划线 BYTE lfStrikeOut; //非零表示有删除线 BYTE lfCharSet;

文档评论(0)

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

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

1亿VIP精品文档

相关文档