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參數必須是下列其中一個值。
值 | 意義 |
---|---|
|
色彩資料表包含 16 位索引的陣列,組成 hdc 參數所識別之裝置內容的邏輯調色盤。 |
|
提供色彩表格,並包含常值 RGB 值。 |
傳回值
如果函式成功,傳回值就是複製的掃描行數。
如果此函式失敗,則傳回值為零。
這可以是下列值。
傳回碼 | 描述 |
---|---|
|
一或多個輸入參數無效。 |
備註
點陣圖位是索引到系統調色盤時,會取得最佳點陣圖繪製速度。
應用程式可以藉由呼叫 GetSystemPaletteEntries 函式來擷取系統調色盤色彩和索引。 擷取色彩和索引之後,應用程式就可以建立 DIB。 如需詳細資訊,請參閱 系統選擇區。
只有在為fuColorUse參數設定DIB_PAL_COLORS常數時,才會使用 hdc參數所識別的裝置內容;否則會忽略它。
當應用程式呼叫此函式時, 不得選取 hbmp 參數所識別的點陣圖到裝置內容中。
除了 RLE 壓縮的點陣圖之外,掃描行必須在 DWORD 上對齊。
下角 DIB 的原點是點陣圖的左下角;由上而下之 DIB 的原點是點陣圖的左上角。
Icm: 如果色彩管理已啟用色彩管理,並呼叫 SetICMMode 並將 iEnableICM 參數設定為 ICM_ON,則會執行色彩管理。 如果 lpbmi 指定的點陣圖具有指定 gamma 和端點成員 的BITMAPV4HEADER ,或指定 gamma 和 endpoints 成員或 profileData 和 profileSize 成員的 BITMAPV5HEADER ,則呼叫會將點陣圖的圖元視為以這些成員所描述的色彩空間表示,而不是在裝置內容的來源色彩空間中表示。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |