第9章图形绘制导论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * 1. 使用成员函数CFont::CreatPointFont() 2. 使用成员函数CFont::CreateFontIndirect() 3. 使用成员函数CFont::CreateFont() 创建字体的方法: CClientDC dc(this); CFont fntZdy, *pfntOld; VERIFY(fntZdy.CreatePointFont(200, Arial, dc)); pfntOld=dc.SelectObject(fntZdy); // 选入设备环境 dc.TextOut(100, 100, Hello! This is 20 Pt Arial Font.); dc.SelectObject(pfntOld); // 恢复原来字体 fntZdy.DeleteObject(); // 删除自定义字体 例: CFont font; LOGFONT LogFnt; memset(LogFnt, 0, sizeof(LOGFONT)); // 清零结构LogFont LogFnt.lfHeight = 22; // 字体高度为22像素 strcpy(LogFnt.lfFaceName, Courier); // 匹配字体为Courier VERIFY(font.CreateFontIndirect(LogFnt)); // 创建字体 CClientDC dc(this); CFont* def_font = dc.SelectObject(font); // 选入设备环境 dc.TextOut(100, 130, Hello! This is 22-pixel-height Courier Font.); dc.SelectObject(def_font); font.DeleteObject(); 例 使用CreateFontIndirect()函数和LOGFONT结构。 例 编写一个文本输出程序UseFont,采用不同方法创建字体,并根据创建的字体输出不同的文本串。 Windows还提供了一个公用字体对话框,很多程序都利用它来选择不同的字体,并可以设置字体的大小和颜色。公用字体对话框对应的MFC类是类CFontDialog,编程时可以通过访问CFontDialog类的有关成员变量或调用成员函数获得用户所选择的字体及其属性,程序员无须具体定义这种字体就可以通过调用函数CreateFontIndirect()创建字体。 公用字体对话框 例 编写一个单文档应用程序FontDlg,当执行菜单命令“字体”时,使用公用字体对话框动态设置字体。 使用图象形式的标志可以使用户很快地找到某个程序或了解一个程序的大致功能,因此在Windows环境中大量使用各种图形图像标志。Windows应用程序中主要使用位图、图标和光标等几种图形资源。 利用Visual C++集成开发环境中的资源编辑器可以创建或编辑这几种图形资源,在程序中需要时可以通过编写源代码使用创建的图形资源。 9.4 位图、图标和光标 位图是一个由位构成的图象,是由一系列数据排列而成的点阵结构,这些数据分别表示各点的颜色信息。Windows支持两种不同形式的位图:设备相关位图DDB(Device Dependent Bitmap)和设备无关位图DIB(Device Independent Bitmap)。 DDB又称GDI位图,它是某种显示设备的内部表示。DDB是针对某个设备创建的位图,显示它依赖具体硬件的调色板。 DIB是不依赖硬件的位图,包含了创建DIB位图时所在设备的颜色格式、分辨率和调色板等信息。DIB位图通常以BMP文件形式保存在磁盘中,或者以资源形式存在于EXE或DLL执行文件中。 9.4.1 位图 MFC只提供了处理DDB位图的类CBitmap,要显示DIB位图,可以先将一个DIB位图转换为DDB位图。类CBitmap提供了一个成员函数,用于从程序的资源中装载位图,并可以将基于资源的DIB位图转换成GDI位图,该函数声明如下: BOOL LoadBitmap( LPCTSTR lpszResourceName ); BOOL LoadBitmap( UINT nIDResource ); 参数lpszResourceName或nIDResource分别为资源名称或资源标识,载入成功返回值为真,否则返回值为假。 MFC处理位图的方法: 位图在显示之前必须先装入内存

文档评论(0)

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

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

1亿VIP精品文档

相关文档