文档详情

VC++6.0绘制位图.pdf

发布:2017-05-25约字共4页下载文档
文本预览下载声明
1.1.1.1. 绘制位图 1.1.1.1. 绘制位图 11..11..11..11.. 绘绘制制位位图图 绘制位图之前需要加载位图。加载位图有两种方式,从资源中加载位图,以及从外部图片文 件中加载位图。 1.1.1.1.1. 1.1.1.1.1. 11..11..11..11..11.. 从资源中加载位图 1.1.1.1.1.1. 1.1.1.1.1.1.定义位图资源 11..11..11..11..11..11..定义位图资源 定定义义位位图图资资源源 位图资源可以直接使用VC6.0 在资源视图中创建或编辑位图资源,也可以在导入外部位图 图片作为位图资源。资源视图中定义位图资源界面如下所示。 定义位图资源 1.1.1.1.1.2. 1.1.1.1.1.2.加载位图 11..11..11..11..11..22..加载位图 加加载载位位图图 使用MFC 提供的CBitmap类可以方便的加载位图资源。 //从资源中加载位图 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //获取位图信息 BITMAPbitmap; memset(bitmap,0,sizeof(bitmap)); bmp.GetBitmap(bitmap); 使用CBitmap 类的GetBitmap 方法获取位图信息,包括宽度和高度以及颜色深度等。使用 BITMAP 结构体来描述位图信息。 typedef struct tagBITMAP { LONG bmType; //类型 LONG bmWidth;//宽度,像素 LONG bmHeight;//高度,像素 LONG bmWidthBytes;//位图的每行占用多少字节。位图是一行行存储的。 WORD bmPlanes;//位面数 WORD bmBitsPixel;//颜色深度,每像素使用多少二进制位表示 LPVOID bmBits;//指向像素颜色数据存储区域的指针。 }BITMAP 1.1.1.1.2. 1.1.1.1.2. 11..11..11..11..22.. 从外部图片文件加载位图 此方式比使用位图资源灵活,程序编译之后还可以随时替换成不同的位图文件。使用全局 函数LoadImage 可以完成此功能。 //从图片文件加载位图。 HBITMAP hbmp; Hbmp =(HBITMAP)LoadImage(NULL,bitmap.bmp,IMAGE_BITMAP,0,0, LR_LOADTRANSPARENT|LR_LOADFROMFILE); //将位图句柄转化为CBitmap 指针。 CBitmap *bmp2=CBitmap::FromHandle(hbmp); //获取位图信息:大小。 memset(bitmap,0,sizeof(bitmap)); bmp2-GetBitmap(bitmap); LoadImage 函数用于加载图标或光标或位图。函数原型如下所示。 HANDLELoadImage HINSTANCEhinst PCTSTRlpszName UINTuType ( , , , intcxDesired intCyDesired UINTfuLoad); , , 各参数含义如下所示。 hinst:处理包含被装载图像模块的特例。 lpszName:当fuLoad 参数使用LR_LOADFROMFILE 标志时,表示图片文件名,否则表示 资源名称。 uType:图片类型。用IMAGE_BITMAP表示位图;IMAGE_CURSOR表示光标;IMAGE_ICON 表示图标。 cxDesired,cyDesired:图片的宽度和高度。 fuLoad:加载参数。LR_LOADTRANSPARENT 表示加载透明位图。 1.1.1.1.3. 1.1.1.1.3. 11..11..11..11..33.. 绘制
显示全部
相似文档