BitBlt 函式 (wingdi.h)
BitBlt 函式會執行與指定來源裝置內容圖元矩形相對應的色彩數據位區塊傳輸至目的地裝置內容。
語法
BOOL BitBlt(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] HDC hdcSrc,
[in] int x1,
[in] int y1,
[in] DWORD rop
);
參數
[in] hdc
目的地裝置內容的句柄。
[in] x
目的地矩形左上角的 X 座標,以邏輯單位表示。
[in] y
目的地矩形左上角的 Y 座標,以邏輯單位表示。
[in] cx
來源和目的地矩形的寬度,以邏輯單位表示。
[in] cy
來源和目的地矩形的高度,以邏輯單位表示。
[in] hdcSrc
來源裝置內容的句柄。
[in] x1
來源矩形左上角的 X 座標,以邏輯單位表示。
[in] y1
來源矩形左上角的 Y 座標,以邏輯單位表示。
[in] rop
點陣作業程序代碼。 這些程式代碼會定義來源矩形的色彩數據如何與目的地矩形的色彩數據結合,以達到最終色彩。
下列清單顯示一些常見的點陣作業程序代碼。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
BitBlt 只會在目的地 DC 上進行裁剪。
如果旋轉或變換轉換在來源裝置內容中生效, BitBlt 會 傳回錯誤。 如果來源裝置內容中有其他轉換 (,且相符的轉換在目的地裝置內容中沒有作用) ,則目的地裝置內容中的矩形會視需要延展、壓縮或旋轉。
如果來源和目的地裝置內容的色彩格式不相符, BitBlt 函式會將來源色彩格式轉換為符合目的地格式。
記錄增強型元檔時,如果來源裝置內容識別增強型元檔裝置內容,就會發生錯誤。
並非所有裝置都支援 BitBlt 函式。 如需詳細資訊,請參閱 GetDeviceCaps 函式中的RC_BITBLT點陣功能專案,以及下列函式: MaskBlt、 PlgBlt 和 StretchBlt。
如果來源和目的地裝置內容代表不同的裝置,BitBlt 會傳回錯誤。 若要在不同裝置的 DC 之間傳輸數據,請呼叫 GetDIBits,將記憶體位圖轉換成 DIB。 若要向第二個裝置顯示 DIB,請呼叫 SetDIBits 或 StretchDIBits。
Icm: Blits 發生時不會執行色彩管理。
範例
下列程式代碼範例示範 BitBlt 的使用。
if (!BitBlt(hdcMemDC,
0, 0,
rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
hdcWindow,
0, 0,
SRCCOPY))
{
MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
goto done;
}
若要在內容中查看此範例,請參閱 擷取影像。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |