-
StretchBlt
鎖定
StretchBlt,函數名。該函數從源矩形中複製一個位圖到目標矩形,必要時按目標設備設置的模式進行圖像的拉伸或壓縮。
- 中文名
- StretchBlt
- Windows NT
- 3.1
- Windows CE
- 1.0
- Windows
- 95
StretchBlt函數原型
BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
StretchBlt參數
BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
hdcDest:指向目標設備環境的句柄。
nXOriginDest:指定目標矩形左上角的X軸座標,按邏輯單位表示座標。
nYOriginDest:指定目標矩形左上角的Y軸座標,按邏輯單位表示座標。
nWidthDest:指定目標矩形的寬度,按邏輯單位表示寬度。
nHeightDest:指定目標矩形的高度,按邏輯單位表示高度。
hdcSrc:指向源設備環境的句柄。
nXOriginSrc:指向源矩形區域左上角的X軸座標,按邏輯單位表示座標。
nYOriginSrc:指向源矩形區域左上角的Y軸座標,按邏輯單位表示座標。
nWidthSrc:指定源矩形的寬度,按邏輯單位表示寬度。
nHeightSrc:指定源矩形的高度,按邏輯單位表示高度。
下面列出了一些常見的光柵操作代碼:
BLACKNESS:表示使用與物理調色板的索引0相關的色彩來填充目標矩形區域,(對缺省的物理調色板而言,該顏色為黑色)。
DSTINVERT:表示使目標矩形區域顏色取反。
MERGECOPY:表示使用布爾型的AND(與)操作符將源矩形區域的顏色與特定模式組合一起。
MERGEPAINT:通過使用布爾型的OR(或)操作符將反向的源矩形區域的顏色與目標矩形區域的顏色合併。
NOTSRCCOPY:將源矩形區域顏色取反,再拷貝到目標矩形區域。
NOTSRCERASE:使用布爾類型的OR(或)操作符組合源和目標矩形區域的顏色值,然後將合成的顏色取反。
PATCOPY:將特定的模式拷貝到目標位圖上。
PATPAINT:通過使用布爾OR(或)操作符將源矩形區域取反後的顏色值與特定模式的顏色合併。然後使用OR(或)操作符將該操作的結果與目標矩形區域內的顏色合併。
PATINVERT:通過使用XOR(異或)操作符將源和目標矩形區域內的顏色合併。
SRCAND:通過使用AND(與)操作符來將源和目標矩形區域內的顏色合併。
SRCCOPY:將源矩形區域直接拷貝到目標矩形區域。
SRCERASE:通過使用AND(與)操作符將目標矩形區域顏色取反後與源矩形區域的顏色值合併。
SRCINVERT:通過使用布爾型的XOR(異或)操作符將源和目標矩形區域的顏色合併。
SRCPAINT:通過使用布爾型的OR(或)操作符將源和目標矩形區域的顏色合併。
BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );
x:邏輯單元x軸左上角座標;
y:邏輯單元y軸左上角座標;
nWidth: 設備矩形寬度;
nHeight:設備矩形高度;
pSrcDC: 源設備上下文;
xSrc :源矩形x軸左上角座標;
ySrc: 源矩形y軸左上角座標;
Specifies the x-coordinate (in logical units) of the upper-left corner of the source rectangle.
nSrcWidth:源矩形寬度;
nSrcHeight:源矩形高度
dwRop:指定要進行的光柵操作。(和第一個函數一樣標示)
StretchBlt返回值
如果函數執行成功,那麼返回值為非零,如果函數執行失敗,那麼返回值為零。Windows NT:若想獲得更多的錯誤信息,請調用GetLastError函數。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:wingdi.h:庫文件:gdi32.lib。
StretchBlt説明
將源矩形中的位圖拷貝到目標矩形中,如果有必要,可以擴展或壓縮該位圖使其與目標矩形尺寸吻合。函數使用目標設備上下文(由SetStretchBltMode設置)的擴展模式來決定如何擴展或壓縮位圖。StretchBlt函數將pSrcDC源設備中的位圖移動到目標矩形,該矩形用成員函數正在調用的設備上下文來表示。xSrc,ySrc,nSrcWidth和nSrcHeight 參數定義了源矩形的左上角和尺寸。x,y,nWidth和nHeight參數定義了目標矩形的左上角和尺寸。dwRop指定的光柵操作模式説明了源位圖與目標設備上已經存在的位圖是如何組合的。如果nSrcWidth和nWidth或nSrcHeight和nHeight的符號不同,StretchBlt將為位圖創建一個鏡像。如果nSrcWidth和nWidth符號不同,函數沿X軸創建鏡像。如果nSrcHeight和nHeight符號不同,函數沿Y軸創建鏡像。StretchBlt函數在內存中對源位圖進行擴展或壓縮,然後將結果拷貝到目標矩形中。如果模板要與結果組合,則在擴展後的位圖拷貝到目標矩形後才組合。如果用到畫刷,應使用目標設備上下文中選定的畫刷。目標座標根據目標設備上下文來轉換,源座標根據源設備上下文來轉換。如果目標位圖、源位圖和模板位圖的格式不一致,StretchBlt使模板與源位圖匹配模板位圖格式,轉換中會使用到目標設備上下文中的前景色和背景色。如果要將黑白位圖轉換為彩色位圖,它將背景色設置為白位(1),前景色設置為黑位(0)。如果要將彩色位圖轉換為黑白位圖,函數設置與背景色匹配的像素為白(1),其它像素為黑(0),用到了帶顏色的設備上下文中的前景色和背景色。不是所有的設備都支持StretchBlt函數。調用帶RASTERCAPS索引的GetDeviceCaps 函數來決定是否支持StretchBlt。並檢驗為返回給RC_STRETCHBLT標記的值。