Windows GDI:CDC绘制Bitmap

来源:互联网 发布:c语言中函数的调用 编辑:程序博客网 时间:2024/05/14 17:35

一、 BitBlt

函数原型:

BOOL CDC::BitBlt(   int x,          // 目标矩形区域左上角x坐标   int y,          // 目标矩形区域左上角y坐标   int nWidth,    // 源矩形区域和目标矩形区域宽度   int nHeight,   // 源矩形区域和目标矩形区域高度   CDC* pSrcDC,   // 源设备环境句柄   int xSrc,      // 源矩形区域左上角x坐标   int ySrc,      // 源矩形区域左上角y坐标   DWORD dwRop    // 一般为SRCCOPY);

功能:

从源设备环境拷贝位图,不具有缩放功能。
从pSrcDC所指向的源设备环境中,拷贝矩形区域(以xSrc, ySrc为左上角,宽为nWidth,高为nHeight)中的位图,到x,y位置。

示例:

CDC dc;CBitmap bitmap;......CDC memDC;memDC.CreateCompatibleDC(&dc);CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);BITMAP bmp;bitmap.GetBitmap(&bmp);dc.BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight, &memDC, 0, 0, SRCCOPY);memDC.SelectObject(pOldBitmap);

二、 StretchBlt

函数原型:

BOOL CDC::StretchBlt(   int x,              // 目标矩形区域左上角x坐标   int y,              // 目标矩形区域左上角y坐标   int nWidth,         // 目标矩形区域宽度   int nHeight,        // 目标矩形区域高度   CDC* pSrcDC,        // 源设备环境句柄   int xSrc,           // 源矩形区域左上角x坐标   int ySrc,           // 源矩形区域左上角y坐标   int nSrcWidth,      // 源矩形区域宽度   int nSrcHeight,     // 源矩形区域高度   DWORD dwRop         // 一般为SRCCOPY);

功能:

从源设备环境拷贝位图,具有缩放功能。
从pSrcDC所指向的源设备环境中,拷贝矩形区域(以xSrc, ySrc为左上角,宽为nSrcWidth,高为nSrcHeight)中的位图,到当前设备环境中的矩形区域(以x,y为左上角,宽为nWidth,高为nHeight)。
源矩形区域的大小和目标矩形区域的大小决定了缩放的比例。

示例:

CDC dc;CBitmap bitmap;......CDC memDC;memDC.CreateCompatibleDC(&dc);CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);BITMAP bmp;bitmap.GetBitmap(&bmp);dc.StretchBlt(    0, 0, bmp.bmWidth / 2.0, bmp.bmHeight / 2.0,     &memDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);memDC.SelectObject(pOldBitmap);

源矩形区域的大小为bmp.bmWidth / 2.0, bmp.bmHeight / 2.0
目标矩形区域的大小为bmp.bmWidth, bmp.bmHeight
所以缩放比例为0.5

0 0
原创粉丝点击