天天看点

MFC中的CSize类,GetSafeHdc()函数,StretchDIBits()函数 GetSafeHdc StretchDIBits

CSize类 类CSize是对 Windows结构 SIZE的封装,凡是能用SIZE结构的地方都可以用CSize代替。 结构SIZE表示一个矩形的长度和宽度,其定义为: typedef struct tagSIZE{ LONG cx; LONG cy; } SIZE; 其中 cx、cy分别是宽度和高度。  

GetSafeHdc

Call this member function to get m_hDC, the output device context. 返回输出设备上下文的句柄 Win32 编程时用HDC 来操作 绘图设备 MFC中封装了HDC 但为了和Win32 兼容, 就用这个函数得到它,以备用户操作HDC                

StretchDIBits

该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。 函数原型: int StretchDIBits(HDC hdc, int XDest , int YDest , int nDestWidth, int nDestHeight, int XSrc, int Ysrc, int nSrcWidth, int nSrcHeight, CONST VOID *lpBits, CONST BITMAPINFO * lpBitsInfo, UINT iUsage, DWORD dwRop);

     参数

hdc:指向目标设备环境的 句柄 。 XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标。 YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。 nDestWidth:指定目标矩形的宽度。 nDestHeight:指定目标矩形的高度。 XSrc:指定 DIB 中源矩形(左上角)的X轴坐标,坐标以像素点表示。 YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示。 nSrcWidth:按像素点指定DIB中源矩形的宽度。 nSrcHeight:按像素点指定DIB中源矩形的高度。 lpBits:指向DIB位的 指针 ,这些位的值按字节类型 数组 存储,有关更多的信息,参考下面的备注一节。 lpBitsInfo:指向BITMAPINFO结构的 指针 ,该结构包含有关DIB方面的信息。 iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了,那么该bmiColors是否包含了明确的 RGB 值或索引。参数iUsage必须取下列值,这些值的含义如下: DIB_PAL_COLORS:表示该 数组 包含对源设备环境的逻辑 调色板 进行索引的16位索引值。 DIB_RGB_COLORS:表示该颜色表包含原义的RGB值,若想了解更多的信息,请参考下面备注一节。 dwRop:指定源 像素 点、目标设备环境的当前刷子和目标像素点是如何组合形成新的图像。若想了解更多信息,请参考下面的备注一节。 返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失败,那么返回值是GDI_ERROR