createDIBitmap 函式 (wingdi.h)

CreateDIBitmap函式會從 DIB 建立相容的點陣圖 (DDB) ,並選擇性地設定點陣圖位。

語法

HBITMAP CreateDIBitmap(
  [in] HDC                    hdc,
  [in] const BITMAPINFOHEADER *pbmih,
  [in] DWORD                  flInit,
  [in] const VOID             *pjBits,
  [in] const BITMAPINFO       *pbmi,
  [in] UINT                   iUsage
);

參數

[in] hdc

裝置內容的控制代碼。

[in] pbmih

點陣圖資訊標頭結構的指標, BITMAPV5HEADER

如果 fdwInit 是CBM_INIT,則函式會使用點陣圖資訊標頭結構來取得所需的點陣圖寬度和高度,以及其他資訊。 請注意,高度的正值表示由下至下 DIB,而高度的負值則表示由上而下 DIB。 使用fdwInit呼叫CreateDIBitmap作為CBM_INIT相當於呼叫CreateCompatibleBitmap函式,以裝置格式建立 DDB,然後呼叫SetDIBits函式,將 DIB 位轉譯為 DDB。

[in] flInit

指定系統如何初始化點陣圖位。 定義下列值。

意義
CBM_INIT
如果設定此旗標,系統會使用 lpbInitlpbmi 參數指向的資料來初始化點陣圖位。

如果清除此旗標,則不會使用這些參數所指向的資料。

 

如果 fdwInit 為零,則系統不會初始化點陣圖位。

[in] pjBits

包含初始點陣圖資料的位元組陣列指標。 資料的格式取決於lpbmi參數所指向之 BITMAPINFO結構的biBitCount成員。

[in] pbmi

BITMAPINFO結構的指標,描述lpbInit參數所指向之陣列的維度和色彩格式。

[in] iUsage

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

意義
DIB_PAL_COLORS
會提供色彩表格,並將 16 位索引的陣列組成要選取點陣圖之裝置內容的邏輯調色盤。
DIB_RGB_COLORS
提供色彩表格,並包含常值 RGB 值。

傳回值

如果函式成功,則傳回值是相容點陣圖的控制碼。

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

備註

所建立的 DDB 將會是參考 DC 所在的任何位深度。 若要建立不同位深度的點陣圖,請使用 CreateDIBSection

若要讓裝置達到最佳點陣圖繪製速度,請將 fdwInit 指定為 CBM_INIT。 然後,使用與視訊模式相同的色彩深度 DIB。 當影片執行 4 或 8-bpp 時,請使用 DIB_PAL_COLORS。

不再支援 fdwInit 參數的CBM_CREATDIB旗標。

當您不再需要點陣圖時,請呼叫 DeleteObject 函式來刪除它。

Icm: 不會執行色彩管理。 建立點陣圖之後,產生的點陣圖內容不會比對色彩。

規格需求

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

另請參閱

BITMAPINFO

BITMAPINFOHEADER

點陣圖函式

點陣圖概觀

CreateCompatibleBitmap

CreateDIBSection

DeleteObject

GetDeviceCaps

GetSystemPaletteEntries

SelectObject

SetDIBits