EngCreateBitmap 函式 (winddi.h)
EngCreateBitmap函式會要求 GDI 建立和管理點陣圖。
語法
ENGAPI HBITMAP EngCreateBitmap(
SIZEL sizl,
LONG lWidth,
[in] ULONG iFormat,
[in] FLONG fl,
[in] PVOID pvBits
);
參數
sizl
指定 SIZEL 結構,其成員包含要建立之點陣圖的寬度和高度,以圖元為單位。 SIZEL 結構與 SIZE 結構相同。
如果 pvBits 不是 Null,這個值應該代表裝置上可見的所有圖元,讓裝置保持 螢幕外記憶體。
lWidth
指定點陣圖的配置寬度,這是必須新增至指標的位元組數目,才能向下移動一行掃描。
[in] iFormat
根據每個圖元的色彩資訊位數,指定點陣圖的格式。 此參數可以是下列其中一個值:
值 | 意義 |
---|---|
BMF_1BPP | 單色 |
BMF_4BPP | 每個圖元 4 位 |
BMF_8BPP | 每個圖元 8 位 |
BMF_16BPP | 每個圖元 16 位 |
BMF_24BPP | 每個圖元 24 位 |
BMF_32BPP | 每個圖元 32 位 |
BMF_4RLE | 每個圖元 4 位;執行長度編碼 |
BMF_8RLE | 每個圖元 8 位;執行長度編碼 |
[in] fl
這是位元遮罩,指定要建立之點陣圖的屬性。 此參數可以是零,或下列值的任何組合:
值 | 意義 |
---|---|
BMF_NOZEROINIT | 配置點陣圖時,GDI 不會將點陣圖初始化為零。 只有在 pvBits 為 Null時,才會檢查此旗標。 |
BMF_TOPDOWN | 第一個掃描行代表點陣圖頂端。 請注意,標準格式點陣圖預設會在底部有第一個掃描行。 |
BMF_USERMEM | GDI 會從使用者記憶體配置點陣圖的記憶體。 根據預設,記憶體會從核心的位址空間配置。 只有當要建立的點陣圖不會由其他進程使用時,才應該指定這個旗標。 印表機驅動程式無法將使用者記憶體傳遞至 EngWritePrinter 。 |
[in] pvBits
要建立之點陣圖之第一個掃描行的指標。 如果此參數為 Null,GDI 會為點陣圖的圖元配置儲存空間。 如果 pvBits 不是 Null,則它是點陣圖緩衝區的指標。
傳回值
如果函式順利完成,則傳回值是識別所建立點陣圖的控制碼。 否則,傳回值為 0。 EngCreateBitmap 不會記錄錯誤碼。
備註
驅動程式可以選擇性地提供點陣圖的儲存體。
驅動程式應該先呼叫 EngAssociateSurface ,將建立的點陣圖關聯為表面,再從 DrvEnableSurface傳回。
不再需要點陣圖時,應該使用 EngDeleteSurface 刪除。
畫面緩衝區顯示驅動程式應該使用 pvBits 參數,讓 GDI 直接繪製到顯示器。
規格需求
最低支援的用戶端 | 適用于 Windows 2000 和更新版本的 Windows 作業系統。 |
目標平台 | Universal |
標頭 | winddi.h (包含 Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |