您的位置:首页 > 其它

wince(2) 位图的使用

2013-03-08 22:02 876 查看
回忆位图画刷的使用步骤:

`````````
PAINTSTRUCT ps;
RECT rect;
GetClientRect(hwnd,&rect);
HDC hdc = BeginPaint(hwnd,&ps);
HBitMap hmp = LoadBitMap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1));
BRUSH brush = CreatePatternBrush(hmp);
HGDIOBJ oldbrush = SelectObject(hdc,brush);// save
Ellipse(hdc,10,10,200,200);
SelectObject(hdc,oldbrush);
DeleteObject(hmp);//clear the rc used
DeleteObject(brush);//clear DC
EndPaint(hwnd,&ps);


  

位图使用操作的步骤:

  1.创建位图句柄;

  2.加载位图对象(3种方法,LoadBitMap,设备相关CreateBitMap,设备无关SHLoadDIBitmap);

  3.创建“内存设备环境”(memory device context,使用CreateCompatibleDC),

  选入设备对象是SelectObject,不必要保存的,

 HGIDOBJ holdmem = SelectObject(hmem,hbitmap)将位图选入设备环境··(3种方法,BitBlt,StretchBlt,TransparentBlt==TransparentImage)

  4.使用绘图函数进行图形的绘制

  5.删除位图句柄

          

View Code

HBITMAP CopyBitmap( HBITMAP hbm) {
HDC hdcSrc = CreateCompatibleDC(NULL);
HDC hdcDst = CreateCompatibleDC(NULL);
HBITMAP hbmOld, hbmOld2, hbmNew;
BITMAP bm;
GetObject(hbm, sizeof(bm), &bm);
hbmOld = SelectObject(hdcSrc, hbm);
hbmNew = CreateBitmap( bm.bmWidth, bm.bmHeight, bm.bmPlanes,
bm.bmBitsPixel,
NULL);
hbmOld2 = SelectObject(hdcDst, hbmNew);
BitBlt(hdcDst, 0, 0, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
SelectObject(hdcSrc, hbmOld);
DeleteDC(hdcSrc);
DeleteDC(hdcDst);
return hbmNew;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: