Функция SetDIBits (wingdi.h)

Функция SetDIBits задает пиксели в совместимом растровом рисунке (DDB), используя цветовые данные, найденные в указанном DIB.

Синтаксис

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, хранящиеся в виде массива байтов. Формат значений растрового изображения зависит от элемента biBitCount структуры BITMAPINFO , на которую указывает параметр lpbmi .

[in] lpbmi

Указатель на структуру BITMAPINFO , содержащую сведения о DIB.

[in] ColorUse

Указывает, был ли предоставлен элемент bmiColors структуры BITMAPINFO и, если да, содержит ли bmiColors явные красные, зеленые, синие (RGB) значения или индексы палитры. Параметр fuColorUse должен иметь одно из следующих значений.

Значение Значение
DIB_PAL_COLORS
Таблица цветов состоит из массива 16-разрядных индексов в логической палитре контекста устройства, определяемого параметром hdc .
DIB_RGB_COLORS
Таблица цветов предоставляется и содержит литеральные значения RGB.

Возвращаемое значение

Если функция выполнена успешно, возвращаемым значением будет количество скопированных строк сканирования.

Если функция выполняется неудачно, возвращается нулевое значение.

Это может быть следующее значение.

Код возврата Описание
ERROR_INVALID_PARAMETER
Один или несколько входных параметров недопустимы.

Комментарии

Оптимальная скорость рисования точечного рисунка достигается, когда битовые рисунки являются индексами в системной палитре.

Приложения могут получать цвета и индексы системной палитры, вызывая функцию GetSystemPaletteEntries . После извлечения цветов и индексов приложение может создать DIB. Дополнительные сведения см. в разделе Системная палитра.

Контекст устройства, определенный параметром hdc, используется только в том случае, если для параметра fuColorUse задана константа DIB_PAL_COLORS; в противном случае он игнорируется.

Растровое изображение, определенное параметром hbmp , не должно быть выбрано в контексте устройства, когда приложение вызывает эту функцию.

Линии сканирования должны быть выровнены по DWORD , за исключением растровых изображений, сжатых RLE.

Источником для dib снизу вверх является левый нижний угол растрового изображения; Источником для diB сверху вниз является левый верхний угол растрового изображения.

ICM: Управление цветом выполняется, если управление цветом было включено при вызове Метода SetICMMode с параметром iEnableICM, для которого задано значение ICM_ON. Если точечный рисунок, заданный lpbmi , имеет BITMAPV4HEADER , указывающий элементы конечных точек и гамма- и BITMAPV5HEADER конечных точек, или элементы profileData и profileSize, то вызов обрабатывает пиксели растрового изображения как выраженные в цветовом пространстве, описываемом этими элементами, а не в исходном цветовом пространстве контекста устройства.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

BITMAPINFO

Функции точечных рисунков

Общие сведения о точечных изображениях

Getdibits

GetSystemPaletteEntries