setDIBits 函式 (wingdi.h)

SetDIBits函式會使用指定 DIB 中找到的色彩資料,在相容的點陣圖 (DDB) 設定圖元。

語法

int SetDIBits(
  [in] HDC              hdc,
  [in] HBITMAP          hbm,
  [in] UINT             start,
  [in] UINT             cLines,
  [in] const VOID       *lpBits,
  [in] const BITMAPINFO *lpbmi,
  [in] UINT             ColorUse
);

參數

[in] hdc

裝置內容的控制代碼。

[in] hbm

相容點陣圖的控制碼 (DDB) ,會使用指定 DIB 中的色彩資料來改變。

[in] start

lpvBits參數所指向陣列中裝置獨立色彩資料的開始掃描線。

[in] cLines

陣列中找到的掃描行數,其中包含裝置無關的色彩資料。

[in] lpBits

DIB 色彩資料的指標,儲存為位元組陣列。 點陣圖值的格式取決於lpbmi參數所指向之 BITMAPINFO結構的biBitCount成員。

[in] lpbmi

點陣圖INFO結構的指標,其中包含 DIB 的相關資訊。

[in] ColorUse

指出是否提供BITMAPINFO結構的bmiColors成員,如果是的話,bmiColors是否包含明確的紅色、綠色、藍色 (RGB) 值或調色盤索引。 fuColorUse參數必須是下列其中一個值。

意義
DIB_PAL_COLORS
色彩資料表包含 16 位索引的陣列,組成 hdc 參數所識別之裝置內容的邏輯調色盤。
DIB_RGB_COLORS
提供色彩表格,並包含常值 RGB 值。

傳回值

如果函式成功,傳回值就是複製的掃描行數。

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

這可以是下列值。

傳回碼 描述
ERROR_INVALID_PARAMETER
一或多個輸入參數無效。

備註

點陣圖位是索引到系統調色盤時,會取得最佳點陣圖繪製速度。

應用程式可以藉由呼叫 GetSystemPaletteEntries 函式來擷取系統調色盤色彩和索引。 擷取色彩和索引之後,應用程式就可以建立 DIB。 如需詳細資訊,請參閱 系統選擇區

只有在為fuColorUse參數設定DIB_PAL_COLORS常數時,才會使用 hdc參數所識別的裝置內容;否則會忽略它。

當應用程式呼叫此函式時, 不得選取 hbmp 參數所識別的點陣圖到裝置內容中。

除了 RLE 壓縮的點陣圖之外,掃描行必須在 DWORD 上對齊。

下角 DIB 的原點是點陣圖的左下角;由上而下之 DIB 的原點是點陣圖的左上角。

Icm: 如果色彩管理已啟用色彩管理,並呼叫 SetICMMode 並將 iEnableICM 參數設定為 ICM_ON,則會執行色彩管理。 如果 lpbmi 指定的點陣圖具有 BITMAPV4HEADER ,指定 gamma 和 endpoints 成員,或是指定 gamma 和 endpoints 成員或 profileData 和 profileSize 成員的 BITMAPV5HEADER ,則呼叫會將點陣圖的圖元視為以這些成員所描述的色彩空間表示,而不是在裝置內容的來源色彩空間中表示。

規格需求

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

另請參閱

BITMAPINFO

點陣圖函式

點陣圖概觀

GetDIBits

GetSystemPaletteEntries