plgBlt 函式 (wingdi.h)

PlgBlt 函式會執行位區塊傳輸,將色彩數據的位從來源裝置內容中指定的矩形傳送到目的地裝置內容中指定的平行投影。 如果指定的位掩碼句柄識別有效的單色位圖,函式會使用此點陣圖來遮罩來源矩形中的色彩數據位。

語法

BOOL PlgBlt(
  [in] HDC         hdcDest,
  [in] const POINT *lpPoint,
  [in] HDC         hdcSrc,
  [in] int         xSrc,
  [in] int         ySrc,
  [in] int         width,
  [in] int         height,
  [in] HBITMAP     hbmMask,
  [in] int         xMask,
  [in] int         yMask
);

參數

[in] hdcDest

目的地裝置內容的句柄。

[in] lpPoint

邏輯空間中三點陣列的指標,可識別目的地平行投影的三個角落。 來源矩形的左上角會對應至此陣列的第一個點、這個陣列中第二個點的右上角,以及第三個點的左下角。 來源矩形的右下角會對應至平行投影中的隱含第四個點。

[in] hdcSrc

來源裝置內容的句柄。

[in] xSrc

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

[in] ySrc

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

[in] width

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

[in] height

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

[in] hbmMask

選擇性單色位圖的句柄,用來遮罩來源矩形的色彩。

[in] xMask

單色位圖左上角的 X 座標,以邏輯單位表示。

[in] yMask

單色位圖左上角的 Y 座標,以邏輯單位表示。

傳回值

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

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

備註

PlgBlt 函式適用於裝置相依點陣圖。

平行投影 (D) 的第四個頂點是藉由將 A、B 和 C () 的前三個點視為向量和運算 D = B +CA 來定義。

如果位掩碼存在,遮罩中的值表示來源圖元色彩應該複製到目的地。 遮罩中的值為零,表示不會變更目的圖元色彩。 如果遮罩矩形小於來源和目的地矩形,函式會復寫遮罩模式。

來源裝置內容中允許縮放、轉譯和反映轉換;不過,旋轉和變換轉換不是。 如果遮罩位圖不是單色位圖,就會發生錯誤。 目的地裝置內容的延展模式可用來判斷視需要如何縮放或壓縮圖元。

記錄增強型元檔時,如果來源裝置內容識別增強型元檔裝置內容,就會發生錯誤。

目的地座標會根據目的地裝置內容而轉換;來源座標會根據來源裝置內容而轉換。 如果來源轉換有旋轉或切割,則會傳回錯誤。

如果目的地和來源矩形的色彩格式不相同, PlgBlt 會將來源矩形轉換為符合目的矩形。

並非所有裝置都支援 PlgBlt 函式。 如需詳細資訊,請參閱 GetDeviceCaps 函式中RC_BITBLT點陣功能的描述。

如果來源和目的地裝置內容代表不相容的裝置, PlgBlt 會傳回錯誤。

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

規格需求

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

另請參閱

BitBlt

點陣圖函式

位圖概觀

GetDIBits

GetDeviceCaps

MaskBlt

SetDIBits

SetStretchBltMode

StretchBlt

StretchDIBits