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 |