CDC::StretchBlt
將來源矩形的點陣圖複製到目的地矩形,必要時可延伸或壓縮點陣圖,使其符合目的地矩形的維度。
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 座標 (以邏輯單位表示)。nSrcWidth
指定來源矩形的寬度 (以邏輯單位表示)。nSrcHeight
指定來源矩形的高度 (以邏輯單位表示)。dwRop
指定待執行的點陣作業。 點陣作業程式碼定義 GDI 在輸出作業中結合色彩的方式;該輸出作業與目前的筆刷、可能的來源點陣圖和目的地點陣圖相關。 這個參數可以是下列其中一個值:BLACKNESS 將所有輸出變成黑色。
DSTINVERT 反轉目的地點陣圖。
MERGECOPY 使用布林值 AND 運算子合併模式和來源點陣圖。
MERGEPAINT 使用布林值 OR 運算子合併反轉的來源點陣圖和目的地點陣圖。
NOTSRCCOPY 將反轉的來源點陣圖複製到目的地。
NOTSRCERASE 反轉使用布林值 OR 運算子合併目的地點陣圖和來源點陣圖的結果。
PATCOPY 將模式複製到目的地點陣圖。
PATINVERT 使用布林值 XOR 運算子合併目的地點陣圖與模式。
PATPAINT 使用布林值 OR 運算子合併反轉的來源點陣圖與模式。 使用布林值 OR 運算子合併此作業的結果與目的地點陣圖。
SRCAND 使用布林值 AND 運算子合併目的地點陣圖和來源點陣圖的像素。
SRCCOPY 將來源點陣圖複製到目的地點陣圖。
SRCERASE 反轉目的地點陣圖並使用布林值 AND 運算子合併結果與來源點陣圖。
SRCINVERT 使用布林值 XOR 運算子合併目的地點陣圖和來源點陣圖的像素。
SRCPAINT 使用布林值 OR 運算子合併目的地點陣圖和來源點陣圖的像素。
WHITENESS 將所有輸出變成白色。
傳回值
如果繪製了點陣圖即為非零,否則為 0。
備註
此函式使用目的地裝置內容 (以 SetStretchBltMode 設定) 的縮放模式判斷如何縮放或壓縮點陣圖。
StretchBlt 函式會將點陣圖從 pSrcDC 指定的來源裝置移到裝置內容物件代表的目的地裝置 (此物件的成員函式會被呼叫)。 xSrc、ySrc、nSrcWidth 和 nSrcHeight 參數定義來源矩形的左上角和維度。 x、y、nWidth 和 nHeight 參數指定目的地矩形的左上角和維度。 dwRop 指定的點陣作業定義如何合併來源點陣圖和已在目的地裝置上的位元。
如果 nSrcWidth 和 nWidth 或 nSrcHeight 和 nHeight 參數的符號不同,StretchBlt 函式會建立點陣圖的鏡像。 如果 nSrcWidth and nWidth 的符號不同,函式會沿著 X 軸建立點陣圖的鏡像。 如果 nSrcHeight and nHeight 的符號不同,函式會沿著 Y 軸建立點陣圖的鏡像。
StretchBlt 函式會延伸或壓縮記憶體中的來源點陣圖,然後將結果複製到目的地。 如果要合併模式和結果,除非將延伸的來源點陣圖複製到目的地,否則不會進行合併。 如果使用筆刷,會使用在目的地裝置內容中選取的筆刷。 目的地座標會根據目的地裝置內容而轉換;來源座標會根據來源裝置內容而轉換。
如果目的地、來源和模式點陣圖的色彩格式不同,StretchBlt 會轉換來源和模式點陣圖以符合目的地點陣圖。 轉換中會使用目的地裝置内容的前景和背景色彩。
如果 StretchBlt 必須將單色點陣圖轉換為彩色,會將白色位元 (1) 設為背景色彩,並將黑色位元 (0) 設為前景色彩。 若要將彩色轉換為單色,則會將符合背景色彩的像素轉換成白色 (1),並將其他所有像素設為黑色 (0)。 會使用彩色裝置內容的前景和背景色彩。
並非所有的裝置皆支援 StretchBlt 函式。 若要判斷裝置是否支援 StretchBlt,請使用 RASTERCAPS 索引呼叫 GetDeviceCaps 成員函式並檢查傳回值是否包含 RC_STRETCHBLT 旗標。
需求
標題: afxwin.h