- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章位图应用.ppt
第7章 位图应用 位图基础知识 位图的结构与表示 使用CBitmap类操作位图 使用API函数操作DDB位图 使用API函数操作DIB位图 位图按钮的实现 * * 位图的基本概念 位图基础知识 位图的结构与表示 在VC中使用与操作位图 使用CBitmap类操作位图 使用API函数操作DDB位图 使用API函数操作DIB位图 位图应用的实例 位图按钮的实现 位图与矢量图 位图:光栅图,以像素来表示图像,记录每个像素的颜色、亮度等属性 矢量图:采用数学方法来描述构成图像的一系列形状和线段 位图的彩色模式 颜色深度:描述每个像素占用的二进制位数 彩色模式:在描述颜色时,需要对颜色数字化,在显示颜色时,需要解析描述颜色的数据并将颜色信息恢复到输出设备上,这种描述颜色的数值化方法称为彩色模式,RGB、CMYK Windows中的位图 DDB位图:依赖与显示设备的位图 DIB位图:设备无关位图 DDB位图的结构与表示 与设备相关位图只能存在于内存中 结构信息由结构体BITMAP描述,说明位图类型、尺寸、颜色格式、位数等信息 CBitmap类封装了对DDB位图的操作 DIB位图:可以以磁盘文件的形式存在,描述信息由以下四个部分构成 文件头:BITMAPFILEHEADER结构体描述,说明类型、文件大小(字节)及图形数据的起始位置 位图信息头:由BITMAPINFO描述,包含两部分 BITMAPINFOHEADER,描述位图大小及颜色格式 颜色信息:RGBQUAD,描述图形的颜色表 位图数据区:记录位图的每一个像素 读取并显示位图 插入位图资源并分配资源标识符 构造位图类对象,使用LoadBitmap将位图资源装入 构造内存设备上下文,CreateCompatibleDC 将位图选入内存设备上下文,SelectObject 使用BitBlt、StretchBlt将位图输出到显示设备上下文 绘制并显示位图 构造内存设备上下文 构造位图类对象并对其初始化,CreateCompatibleBitmap等 将位图对象选入内存设备上下文 调用内存设备上下文的GDI函数绘制位图 调用BitBlt、StretchBlt输出位图到显示设备上下文 创建位图,CreateCompatibleBitmap、CreateBitmap 创建内存设备上下文,CreateCompatibleDC BitBlt、StretchBlt绘图函数 要点:掌握句柄与类对象之间的相互转换 API函数使用句柄标识位图、设备上下文等对象 可以将位图句柄转换为位图类对象,调用格式为Cbitmap *pBitmap = Cbitmap:FromHandle ( hBitmap ) 将句柄转换为位图类对象,HBITMAP hBitmap = (HBITMAP) pBitmap-GetSafeHandle() 设备上下文类对象和句柄也可以采用类似的方法相互转换 从DDB位图中产生DIB位图,GetDIBits 将DIB位图转换为DDB位图,SetDIBits、CreateDIBitmap等 输出DIB位图,StretchDIBits 实例:实现应用程序的启动画面 实质:在显示程序窗口之前,创建窗口显示位图,经过适当延时后,关闭位图窗口,继续程序运行 插入位图,分配资源标识符 创建用来显示位图的窗口类(CWnd派生) 在窗口类的Create函数中,创建位图,获取位图信息,将DIB位图转换为DDB位图,将窗口显示于屏幕中央 映射窗口类的WM_PAINT消息,输出位图 在应用程序类的InitInstance创建并更新窗口,延时后关闭之 要点:::GetDC(NULL),可获得操作整个屏幕的设备上下文 制作位图,每个按钮最多4种状态,可制作1~4个位图文件 将位图插入资源中,分配字符串标识符 添加按钮控件,设置属性的Ownerdraw属性 在对话框类中添加CBitmapButton类对象成员,在构造函数中调用LoadBitmaps,将位图资源装入位图按钮类对象中 在对话框的InitDialog中,调用SubclassDlgItem,用位图按钮类的消息映射接替按钮类的消息映射 更简洁的方法: 添加按钮控件,制作位图并插入位图资源中 设置按钮的Caption属性(英文不重复),设置字符串标识符为对应按钮的Caption(转换为大写)加上表示状态的大写字母(U、D、F、X) 定义CBitmapButton成员变量,在构造函数中调用AutoLoad成员,自动实现按钮与位图资源的关联 *
文档评论(0)