AlphaBlend 函式 (wingdi.h)

AlphaBlend函式會顯示具有透明或半透明圖元的點陣圖。

語法

BOOL AlphaBlend(
  [in] HDC           hdcDest,
  [in] int           xoriginDest,
  [in] int           yoriginDest,
  [in] int           wDest,
  [in] int           hDest,
  [in] HDC           hdcSrc,
  [in] int           xoriginSrc,
  [in] int           yoriginSrc,
  [in] int           wSrc,
  [in] int           hSrc,
  [in] BLENDFUNCTION ftn
);

參數

[in] hdcDest

目的地裝置內容的控制碼。

[in] xoriginDest

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

[in] yoriginDest

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

[in] wDest

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

[in] hDest

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

[in] hdcSrc

來源裝置內容的控制碼。

[in] xoriginSrc

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

[in] yoriginSrc

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

[in] wSrc

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

[in] hSrc

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

[in] ftn

來源和目的地點陣圖的 Alpha 混合函數、要套用至整個來源點陣圖的全域 Alpha 值,以及來源點陣圖的格式資訊。 來源和目的地混合函式目前僅限於AC_SRC_OVER。 請參閱 BLENDFUNCTIONEMRALPHABLEND 結構。

傳回值

如果函式成功,則傳回值為 TRUE

如果函式失敗,則傳回值為 FALSE

備註

如果來源矩形和目的地矩形的大小不相同,則會延展來源點陣圖以符合目的地矩形。 如果使用 SetStretchBltMode 函式, iStretchMode 值會自動轉換為此函式的 COLORONCOLOR (也就是 BLACKONWHITE、WHITEONBLACK 和 HALFTONE 變更為 COLORONCOLOR) 。

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

如果來源裝置內容識別增強的中繼檔裝置內容,則會發生錯誤 (,且函式會傳回 FALSE) 。

如果目的地和來源點陣圖沒有相同的色彩格式, AlphaBlend 會轉換來源點陣圖以符合目的地點陣圖。

AlphaBlend 不支援鏡像。 如果來源或目的地的寬度或高度為負數,此呼叫將會失敗。

轉譯至印表機時,請先呼叫具有 SHADEBLENDCAPS 的 GetDeviceCaps ,以判斷印表機是否支援與 AlphaBlend混合。 請注意,對於顯示 DC,支援所有混合作業,而且這些旗標代表作業是否加速。

如果來源和目的地是相同的表面,也就是說,它們都是螢幕或相同的記憶體點陣圖,而且來源和目的地矩形重迭,就會發生錯誤,而且函式會傳回 FALSE

來源矩形必須完全位於來源介面內,否則會發生錯誤,而且函式會傳回 FALSE

如果來源或目的地的寬度或高度為負數,AlphaBlend就會失敗。

BLENDFUNCTIONSourceConstantAlpha成員會指定整個來源點陣圖上要使用的 Alpha 透明度值。 SourceConstantAlpha值會與任何每圖元 Alpha 值結合。 如果 SourceConstantAlpha 為 0,則會假設影像是透明的。 將 SourceConstantAlpha 值設定為 255 (,表示當您只想要使用每圖元 Alpha 值時,影像不透明) 。

規格需求

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

另請參閱

BLENDFUNCTION

點陣圖函式

點陣圖概觀

EMRALPHABLEND

GetDeviceCaps

SetStretchBltMode