На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

CreateDIBSection



The CreateDIBSection function creates a device-independent bitmap (DIB) that applications can write to directly. The function gives you a pointer to the location of the bitmap's bit values. You can supply a handle to a file mapping object that the function will use to create the bitmap, or you can let the operating system allocate the memory for the bitmap.



HBITMAP CreateDIBSection(

HDC hdc, // handle to device context
CONST BITMAPINFO *pbmi, // pointer to structure containing bitmap size, format, and color data
UINT iUsage, // color data type indicator: RGB values or palette indices
VOID *ppvBits, // pointer to variable to receive a pointer to the bitmap's bit values
HANDLE hSection, // optional handle to a file mapping object
DWORD dwOffset // offset to the bitmap bit values within the file mapping object
);


Parameters

hdc

Handle to a device context. If the value of iUsage is DIB_PAL_COLORS, the function uses this device context's logical palette to initialize the device-independent bitmap's colors.

pbmi

Points to a BITMAPINFO structure that specifies various attributes of the device-independent bitmap, including the bitmap's dimensions and colors.

iUsage

Specifies the type of data contained in the bmiColors array member of the BITMAPINFO structure pointed to by pbmi: logical palette indices or literal RGB values. The following values are defined:

Value Meaning
DIB_PAL_COLORS The bmiColors member is an array of 16-bit indices into the logical palette of the device context specified by hdc.
DIB_RGB_COLORS The BITMAPINFO structure contains an array of literal RGB values.


ppvBits

Points to a variable that receives a pointer to the location of the device-independent bitmap's bit values.

hSection

Handle to a file mapping object that the function will use to create the device-independent bitmap. This parameter can be NULL.

If hSection is not NULL, it must be a handle to a file mapping object created by calling the CreateFileMapping function. Handles created by other means will cause CreateDIBSection to fail.
If hSection is not NULL, the CreateDIBSection function locates the bitmap's bit values at offset dwOffset in the file mapping object referred to by hSection. An application can later retrieve the hSection handle by calling the GetObject function with the HBITMAP returned by CreateDIBSection.

If hSection is NULL, the operating system allocates memory for the device-independent bitmap. In this case, the CreateDIBSection function ignores the dwOffset parameter. An application cannot later obtain a handle to this memory: the dshSection member of the DIBSECTION structure filled in by calling the GetObject function will be NULL.

dwOffset

Specifies the offset from the beginning of the file mapping object referenced by hSection where storage for the bitmap's bit values is to begin. This value is ignored if hSection is NULL. The bitmap's bit values are aligned on doubleword boundaries, so dwOffset must be a multiple of the size of a DWORD.



Return Values

If the function succeeds, the return value is a handle to the newly created device-independent bitmap, and *ppvBits points to the bitmap's bit values.
If the function fails, the return value is NULL, and *ppvBits is NULL. To get extended error information, call GetLastError.

Remarks

As noted above, if hSection is NULL, the operating system allocates memory for the device-independent bitmap. The operating system closes the handle to that memory when you later delete the device-independent bitmap by calling the DeleteObject function. If hSection is not NULL, you must close the hSection memory handle yourself after calling DeleteObject to delete the bitmap.
Windows NT: You need to guarantee that the GDI subsystem has completed any drawing to a bitmap created by CreateDIBSection before you draw to the bitmap yourself. Access to the bitmap must be synchronized. Do this by calling the GdiFlush function. This applies to any use of the pointer to the bitmap's bit values, including passing the pointer in calls to functions such as SetDIBits.

See Also

BITMAPINFO, CreateFileMapping, DeleteObject, DIBSECTION, GetDIBColorTable, GetObject, GdiFlush, HBITMAP, SetDIBits, SetDIBColorTable


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

CreateDIBSection



Функция CreateDIBSection создает машинонезависимое побитовое отображение (DIB), которое приложения могут написаться на непосредственно. Функция дает Вам указатель в позицию битовых величин побитового отображения. Вы можете поставить ручку в файл, отображающий объект, что функция использует, чтобы создавать побитовое отображение, или Вы можете позволить, чтобы операционная система распределяет память для побитового отображения.



HBITMAP CreateDIBSection(

HDC hdc, // РУЧКА в контекст устройства
CONST BITMAPINFO *pbmi, // УКАЗАТЕЛЬ в структуру, содержащую размер побитового отображения, формата, и цветной iUsage данных UINT, // указателя типа цветных данных: величины RGB или ПУСТОТА индексов палитры *ppvBits, // указатель в переменную, чтобы получать указатель в РУЧКУ битовых величин побитового отображения hSection, // дополнительная ручка в файл, отображающий смещение объекта DWORD dwOffset // в битовые величины побитового отображения в пределах файла, отображающего объект
);


Параметры

hdc

Прооперируйте контекст устройства. Если величина iUsage - DIB_PAL_COLORS, функция использует эту контекстную логическую палитру устройства, чтобы инициализировать машинонезависимые цвета побитового отображения.

pbmi

Точки на структуру BITMAPINFO, которые определяют различные атрибуты машинонезависимого побитового отображения, включая измерения побитового отображения и цветов.

iUsage

Определяет тип данных содержимых в элементе массива bmiColors структуры BITMAPINFO указанной, чтобы pbmi: логические индексы палитры или буквальных величин RGB. Следующие величины определены:

Значение Величины
DIB_PAL_COLORS элемент bmiColors является массивом 16- битовых индексов в логическую палитру контекста устройства определенного hdc.
DIB_RGB_COLORS структура BITMAPINFO содержит массив буквальных величин RGB.


ppvBits

Точки на переменную, которые получают указатель в позицию битовых величин машинонезависимого побитового отображения.

hSection

Прооперируйте файл, отображающий объект, что функция использует, чтобы создавать машинонезависимое побитовое отображение. Этот параметр может быть НЕДЕЙСТВИТЕЛЕН.

Если hSection не НЕДЕЙСТВИТЕЛЕН, это должно быть ручкой в файле, отображающем объект создавался вызовом функции CreateFileMapping. Ручки созданные другими средствами заставит CreateDIBSection, чтобы терпеть неудачу.
Если hSection не НЕДЕЙСТВИТЕЛЕН, функция CreateDIBSection располагает битовые величины побитового отображения в смещении dwOffset в файле, отображающем объект ссылался, чтобы hSection. Приложение может позже извлечь hSection оперирует вызывая функцию GetObject с HBITMAP возвращанное CreateDIBSection.

Если hSection НЕДЕЙСТВИТЕЛЕН, операционная система распределяет память для машинонезависимого побитового отображения. В этом случае, функция CreateDIBSection игнорирует параметр dwOffset. Приложение не может позже получить ручку в эту память: элемент dshSection структуры DIBSECTION заполненной вызовом функции GetObject быть НЕДЕЙСТВИТЕЛЬНО.

dwOffset

Определяет смещение из начала файла отображая объект ссылавшийся hSection где память для битовых величин побитового отображения должно начинаться. Эта величина проигнорирована если hSection НЕДЕЙСТВИТЕЛЕН. Битовые величины побитового отображения выровнены на границах двойного слова, так что dwOffset должен быть кратным размера DWORD.



Обратные Величины

Если функция добивается успеха, обратная величина является ручкой в вновь созданное машинонезависимое побитовое отображение, и *ppvBits указывает на битовые величины побитового отображения.
Если функция терпит неудачу, обратная величина - НЕДЕЙСТВИТЕЛЬНА, и *ppvBits НЕДЕЙСТВИТЕЛЕН. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Замечания

Как упомянуто выше, если hSection НЕДЕЙСТВИТЕЛЕН, операционная система распределяет память для машинонезависимого побитового отображения. Операционная система закрывает ручку в эту память когда Вы позже удаляете машинонезависимое побитовое отображение вызывая функцию DeleteObject. Если hSection не НЕДЕЙСТВИТЕЛЕН, Вы должны закрыть сами ручку памяти hSection после вызова DeleteObject, чтобы удалять побитовое отображение.
Windows NT: Вам нужно гарантировать, что подсистема GDI завершила любой чертеж в побитовое отображение созданное CreateDIBSection перед, Вы делаете в побитовое отображение сами. Иметь доступ к побитовому отображению должно быть синхронизировано. Сделайте с помощью вызова функции GdiFlush. Это относится к любому использованию указателя в битовые величины побитового отображения, включая прохождение указателя на вызовах в функции как например, SetDIBits.

Смотри Также

BITMAPINFO, CreateFileMapping, DeleteObject, DIBSECTION, GetDIBColorTable, GetObject, GdiFlush, HBITMAP, SetDIBits, SetDIBColorTable


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz