GDI-GDI-从入门到精通-第五讲课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《GDI-GDI-从入门到精通-第五讲课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GDI 入门 精通 第五 讲课
- 资源描述:
-
1、第五讲:GDI/GDI+高级编程进阶主讲人:阙海忠 UIPower CEO本讲要点 图片平铺 DC的偏移 内存DC类的构建 百叶窗特效 保存图像文件到本地磁盘DC的剪辑用SelectClipRgn函数来剪辑指定的区域,只有被剪辑的部分,才会被绘制!SelectClipRgn(HDC hDC,HRGN hRgn);参数hDC就是我们要剪辑的DC句柄。参数hRgn就是我们要剪辑的区域。DC的剪辑要剪辑的区域,不一定要是矩形区域,也可以是圆角矩形区域,也可以是圆形区域等。比如:CreateRectRgn(int x1,int y1,int x2,int y2);就是创建矩形区域,CreateRoun
2、dRectRgn(int x1,int y1,int x2,int y2,int w,int h)就是创建圆角矩形区域,CreateEllipticRgn(int x1,int y1,int x2,int y2);就是创建圆形区域。DC的偏移DC的偏移就是设置DC绘制的起点坐标位置。默认情况下,DC的绘制起点坐标是在DC左上角的(0,0)位置。如果我们把这个起点坐标修改了,假如修改成(100,200),那以后往这个DC绘制时,就默认以(100,200)为起点坐标。这时,如果编写TextOut(hdc,0,0,.),就会把字符串绘制在(100,200)上面;如果编写TextOut(hdc,-10
3、0,-200,.),就会把字符串绘制在(0,0)上面。DC的偏移SetViewportOrgEx(HDC hdc,int x,int y,LPPOINT lppt);参数hdc就是要修改绘制起点坐标的DC句柄。参数x就是新的绘制起点坐标的X坐标位置。参数y就是新的绘制起点坐标的Y坐标位置。参数lppt可以用来获取旧的绘制起点坐标,可设置为NULL,代表不获取。DC的偏移GetViewportOrgEx(HDC hdc,LPPOINT lppoint);参数hdc就是要获取绘制起点坐标的DC句柄。参数lppoint用来获取hdc当前绘制的起点坐标。百叶窗特效特效介绍百叶窗就是把窗口的客户区域分割
4、成N个的条状块。假设按下键盘的E键时,窗口背景就变成白色,然后,依次显示2,4,6,8,10.偶数个的条状块区域,偶数的条状块区域显示完之后,再依次地显示1,3,5,7,9.奇数个的条状块区域。下页为百页窗显示过程的一张截图。百叶窗特效特效介绍百叶窗特效实现思路首先,获取当前窗口DC中的位图句柄。然后,获取当前窗口DC位图中的像素颜色数据。再然后,创建N个位图,每个位图对应百叶窗的每个条状块。每创建完一个新位图之后,把当前窗口DC位图中的指定区块的颜色数据拷贝到新位图的像素数据中。再然后,就依次绘制2,4,6,8,10.偶数个的条状块区域。再然后,就依次绘制1,3,5,7,9.奇数个的条状块区
5、域。获取位图的像素颜色数据GetBitmapBits(HBITMAP hbit,LONG cb,LPVOID lpvBits);参数hbit就是要获取像素颜色数据的位图句柄。参数lpvBits就是要接收位图像素颜色数据的缓冲区。参数cb就是缓冲区lpvBits的大小。CreateDIBSection创建位图CreateDIBSection函数的功能就是创建一个应用程序可以直接写入像素颜色数据、与设备无关的位图。该函数提供一个指针,该指针指向位图的像素颜色数据的地方。通过改指针修改数据,最终为该位图写入了像素颜色数据了。CreateDIBSection创建位图HBITMAP CreateDIBS
6、ection(HDC hdc,CONST BITMAPINFO*lpbmi,UINT usage,VOID*ppvBits,HANDLE hSection,DWORD offset);参数hdc就是设备环境句柄。参数lpbmi就是一个指向BITMAPINFO结构的指针,该结构指定了设备位图的各种属性,比如位图的维数。CreateDIBSection创建位图参数iUsage指定由pbmi参数指定的BITMAPINFO结构中的成员bmiColors数组包含的数据类型,要么是逻辑调色板索引值(对应的参数值是DIB_PAL_COLORS),要么是原始的RGB值(对应的参数值是DIB_RGB_COLOR
展开阅读全文