複製鏈接
請複製以下鏈接發送給好友

SetDIBits

鎖定
SetDIBits是一種顏色數據來設置位圖中的像素的函數。
中文名
SetDIBits
性    質
函數
參    數
HDC hdc, HBITMAP hbmp,

SetDIBits函數功能

該函數使用指定的DIB位圖中發現的顏色數據來設置位圖中的像素。

SetDIBits函數原型

int SetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits,CONST BITMAPINFO *lpbmi, UINT fuColorUse);

SetDIBits參數

hdc:指向設備環境中的句柄。
hbmp:指向位圖的句柄。函數要使用指定DIB中的顏色數據對該位圖進行更改。
uStartScan:為參數lpvBits指向的數組中的、與設備無關的顏色數據指定起始掃描線
cScanLines:為包含與設備無關的顏色數據的數組指定掃描線數目。
lpvBits:指向DIB顏色數據的指針,這些數據存儲在字節類型的數組中,位圖值的格式取決於參數lpbmi指向的BITMAPINFO結構中的成員biBitCount。
lpbmi:指向BITMAPINFO數據結構的指針,該結構包含有關DIB的信息。
fuColorUse:指定是否提供了BITMAPINFO結構中的bmiColors成員,如果提供了,那麼bmiColors是否包含了明確的RGB值或調色板索引。參數fuColorUse必須取下列值,各值的含義為:
DIB_PAL_COLORS:顏色表由16bit的索引值數組組成。這些值可以對由hdc參數標識的設備環境中的邏輯調色板進行索引。
DIB_RGB_COLORS:提供了顏色表,並且表中包含了原義的RGB值。

SetDIBits返回值

如果函數成功,那麼返回值就是複製的掃描線數;如果函數失敗,那麼返回值是0。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函數。

SetDIBits其他信息

位圖的位要索引到系統調色板時,可獲取最佳的位圖繪製速度。
應用程序可能通過調用GetSystemPaletteEntries函數來檢索系統調色板顏色和索引。在檢索到顏色和索引值之後,應用程序可以創建DIB,有關更多的信息,請參考系統調色板(System Paletle)。
只有在參數fuColorUse設置為DIB_PAL_COLORS常量時才使用參數hdc標識的設備環境,否則會忽略hdc參數中的值。
在應用程序調用該函數時,必須把由參數hbmp標識的位圖選入到設備環境中。
自底向上的DIB位圖的起始點是該位圖的左下角處,自頂向下的DIB位圖的起源點在該位圖的左上角處。
ICM:顏色管理照樣進行。如果指定的BITMAPINFO結構不是BITMAPV4HEADER或BITMAPV5HEADER,那麼當前設備環境的顏色配置(profile)就用作源顏色配置。如果BITMAPINFO結構不是BITMAPV4HEADER或BITMAPV5HEADER,那麼使用RGB顏色。如果指定的BITMAPINFO結構是BITMAPV4HEADER或BITMAPV5HEADER,那麼與該位圖有關的顏色配置(profile)被用作源顏色。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭文件:wingdi.h:庫文件:gdi32.lib。