操作位图的基本步骤:
*创建位图句柄
*加载位图对象
*创建内存设备描述对象,将位图选入内存设备描述对象
*使用绘图函数进行图形绘制
*删除位图句柄
创建位图句柄并且加载位图对象:
*位图句柄
HBITMAP hBmp
*BOOL LoadBitmap(
HINSTANCE hlnstance,
LPCTSTR lpBitmapName);
*位图资源有两种:
系统内置资源
应用程序位图资源
HBITMAP CreateBitmap(
int nWidth, //指定位图宽度
int nHeight, //指定位图高度
UINT cPlanes, //该设备使用的颜色位数目,在CE环境中为1
UINT cBitsPeral, //指定每个像素所用的位数,一般都是2的n次方
CONST VOID *lpBits) //指向颜色数据数组指针
举例如下图:
hBmp = CreatBitmap(20,5,1,4,bits);
HBITMAP SHLoadDlBitmap(LPCTSTR szFileName);
位图的显示步骤:
*创建内存设备环境
*将位图句柄选入设备内存环境
*调用传送函数在设备上显示位图
内存设备环境:
*内存设备环境的作用:
提高存取速度,并且使位图的设置和设备环境的设置进行匹配,Windows CE 首先将位 图装入到内存设备环境中,然后从内存中赋值到设备环境。
*HDC CreateCompatibleDC(HDC hdc);
*位图选入设备对象使用:SelectObject()函数
传送数据块的函数:
BOOL BitBlt(
HDC hdcDest, //目标设备环境的句柄
int nXDest,int nYDest, //目标矩形区域左上角的 逻辑坐标
int nWidth,int nHeight, //目标矩形区域的宽度和高度
HDC hdcSrc, //源绘图环境的句柄
int nXSrc,int nYSrc, //源绘图左上角的逻辑坐标
DWORD dwRop); //设定执行的光栅操作代码
*SRCCOPY 将源位图拷贝到目标位图
BOOL StretchBit(
HDC hdcDest,
int nXOriginDest,int nYOriginDest,
int nWidthDest,int nHeightDest,
HDC hdcSrc,
int nXOriginSrc,int nYOriginSrc,
int nWidthSrc,int nHeightSrc,
UINT crTransparent);