TransparentBlt、StretchBlt與BitBlt三個函式的區別
TransparentBlt、StretchBlt與BitBlt三個函式的區別
BOOL 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 //此引數參考MSDN,SRCCOPY型別為直接拷貝
); //此函式將一個點陣圖資源從一個矩形區域拷貝到另一個矩形區域,即縮放點陣圖
BOOL TransparentBlt(
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT clrTransparent
); //此函式同樣具有縮放功能,但此函式最後一個引數用來指定作為透明色的RGB;
BOOL BitBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
int xSrc,
int ySrc,
DWORD dwRop
); //此函式同樣用來拷貝點陣圖資源,但不具備縮放功能.
用法舉例:
CPaintDC dc(this); CBitmap BackBMP;
BackBMP.LoadBitmapW(IDB_BITMAP1);
BITMAP bm; BackBMP.GetBitmap(&bm);
CDC ImageDC;
ImageDC.CreateCompatibleDC(&dc);
CBitmap* pOldImageBMP = ImageDC.SelectObject(&BackBMP);
dc.StretchBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
ImageDC.SelectObject(pOldImageBMP);
CBitmap ForeBMP;
ForeBMP.LoadBitmapW(IDB_BITMAP2);
ForeBMP.GetBitmap(&bm);
pOldImageBMP = ImageDC.SelectObject(&ForeBMP);
dc.TransparentBlt(0, 0, bm.bmWidth+15, bm.bmHeight+15, &ImageDC, 0, 0, bm.bmWidth, bm.bmHeight, RGB(255, 255, 255));
//源BitMap中的RGB(255, 255, 255)值當作透明顏色,也就是白色。
ImageDC.SelectObject(pOldImageBMP);
相關文章
- StretchBlt函式和BitBlt函式的區別和用法函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- append()函式與html()函式的區別APP函式HTML
- 函式過載與函式模板的區別函式
- 箭頭函式與普通函式區別函式
- fill函式與memset函式的區別(c++)函式C++
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 箭頭函式和普通函式的10個區別函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- C++之函式模板與類别範本的區別(三)C++函式
- 使用StretchBlt函式進行影象縮放函式
- closest()函式parent()函式的區別函式
- 函式宣告和函式表示式的區別函式
- prop()函式和attr()函式的區別函式
- strcpy函式和memcpy函式的區別函式memcpy
- python函式與方法的區別總結Python函式
- jquery position()函式和offset()函式的區別jQuery函式
- # 普通函式和箭頭函式的區別函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- jquery的$.each()函式和$.map()函式的區別jQuery函式
- JavaScript建構函式和普通函式的區別JavaScript函式
- JavaScript函式宣告和函式表示式區別JavaScript函式
- JQuery的ready函式與JS的onload的區別jQuery函式JS
- 正規表示式match()函式和exec()函式的區別函式
- C#中解構函式,Close函式,Dispose函式的區別C#函式
- Python range與enumerate函式區別解析Python函式
- nvl、nvl2與nullif函式用法區別Null函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- 簡述箭頭函式和普通函式的區別函式
- php取整函式ceil,floor,round,intval函式的區別PHP函式
- 迭代器與可迭代物件的區別,以及iter()函式的使用。物件函式
- JavaScript方法和函式區別JavaScript函式
- js表示式方式和函式語句方式宣告函式的區別JS函式
- SQL server 表值函式 標量值函式 區別SQLServer函式
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- 深入理解箭頭函式和傳統函式的區別函式