StretchBlt 函式 (wingdi.h)

StretchBlt 函式會視需要將來源矩形中的位陣圖複製到目的地矩形,縮放或壓縮點陣圖以符合目的矩形的維度。 系統會根據目前在目的地裝置內容中設定的延展模式,延展或壓縮位圖。

語法

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

參數

[in] hdcDest

目的地裝置內容的句柄。

[in] xDest

目的地矩形左上角的 X 座標,以邏輯單位表示。

[in] yDest

目的地矩形左上角的 Y 座標,以邏輯單位表示。

[in] wDest

目的地矩形的寬度,以邏輯單位表示。

[in] hDest

目的地矩形的高度,以邏輯單位表示。

[in] hdcSrc

來源裝置內容的句柄。

[in] xSrc

來源矩形左上角的 X 座標,以邏輯單位表示。

[in] ySrc

來源矩形左上角的 Y 座標,以邏輯單位表示。

[in] wSrc

來源矩形的寬度,以邏輯單位表示。

[in] hSrc

來源矩形的高度,以邏輯單位表示。

[in] rop

要執行的點陣作業。 點陣作業程式代碼會定義系統如何結合輸出作業中涉及筆刷、來源位圖和目的地點陣圖的色彩。

如需一般點陣作業代碼的清單,請參閱 BitBlt (ROP) 。 請注意,CAPTUREBLT ROP 通常無法用於列印裝置內容。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。

備註

StretchBlt 會延 展或壓縮記憶體中的來源位陣圖,然後將結果複製到目的地矩形。 此點陣圖可以是相容的點陣圖 (DDB) 或 CreateDIBSection 的輸出。 圖樣或目的地圖元的色彩數據會在延展或壓縮發生之後合併。

記錄增強型元檔時,如果來源裝置內容識別增強型元檔裝置內容,就會 (發生錯誤,且函式會傳回 FALSE) 。

如果指定的點陣作業需要筆刷,系統會使用目前選取的筆刷到目的地裝置內容中。

目的地座標會使用目前為目的地裝置內容指定的轉換來轉換;來源座標會使用目前為來源裝置內容指定的轉換來轉換。

如果來源轉換有旋轉或切割,就會發生錯誤。

如果目的地、來源和圖樣位圖的色彩格式不相同, StretchBlt 會轉換來源和圖樣位圖以符合目的地位圖。

如果 StretchBlt 必須將單色位圖轉換成色彩點陣圖,它會將白色位 (1) 設為背景色彩,並將黑色位 (0) 設為前景色彩。 若要將色彩點陣圖轉換成單色位圖,它會將符合背景色彩的像素設定為白色 (1) ,並將所有其他圖元設定為黑色 (0) 。 會使用彩色裝置內容的前景和背景色彩。

如果 nWidthSrcnWidthDest 參數的符號或 nHeightSrc 和 nHeightDest 參數不同,StretchBlt 會建立位圖的鏡像影像。 如果 nWidthSrcnWidthDest 有不同的符號,函式會沿著 x 軸建立位圖的鏡像影像。 如果 nHeightSrcnHeightDest 有不同的符號,此函式會沿著 Y 軸建立位圖的鏡像影像。

並非所有裝置都支援 StretchBlt 函式。 如需詳細資訊,請參閱 GetDeviceCaps

Icm: Blit 作業發生時,不會執行任何色彩管理。

在多個監視器系統中使用時, hdcSrchdcDest 都必須參考相同的裝置,否則函式將會失敗。 若要在不同裝置的 DC 之間傳輸數據,請呼叫 GetDIBits,將記憶體位圖轉換成 DIB。 若要向第二個裝置顯示 DIB,請呼叫 SetDIBitsStretchDIBits

範例

如需範例,請參閱 調整影像

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wingdi.h (包含 Windows.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

BitBlt

點陣圖函式

位圖概觀

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits