Четвертый BORLAND С++ и его окружение



         

Класс TDib


Независимый от устройства битовый массив DIB не имеет описателя GDI как обычный битовый массив, хотя имеет глобальный описатель. Это просто структура, содержащая информацию о палитре и набор бит (элементов изображения). Класс TDib дает удобный способ

работы с DIB, аналогичный методам работы с другим объектами GDI.

Память для DIB выделяется одним фрагментом (с помощью функции

Windows GlobalAlloc), так что ее можно передать в буфер обмена,

OLE-серверу или клиенту.

Построить объект TDib вы можете прямо или косвенно. При непосредственном построении вы можете задать высоту, ширину битового массива и т.д. При косвенном построении вы можете задать существующий объект битового массива, указатель на структуру BITMAP, метафайл, контекст устройства TDC, буфера обмена и т.д.

Если ShouldDelete возвращает True, ~TDib освобождает ресурс

и используемую глобальную память.

Для доступа к инкапсулированному DIB TDib предусматривает

различные функции-элементы. Функции преобразования типов в TDib

позволяют вам обращаться к TDib наиболее удобным для конкретной

операции способом. Для доступа к TDib через HANDLE можно использовать операцию преобразования HANDLE. Вы можете также преобразовать объект TDib в три других типа битовых массивов. Для этого

используются операции BITMAPINFO, BITMAPINFOHEADER и TRgbQuad.

Для доступа к внутренним структурам DIB используются специальные функции с такими же именами BITMAPINFO, BITMAPINFOHEADER и

TRgbQuad. Функция GetIndices возвращает указатель на массив, содержащий биты фактического образа DIB.

Поместить объект DIB в буфер обмена Clipboard можно с помощью функции ToClipboard, в качестве единственного параметра которой задается ссылка на объект TClipboard. Так как эта функция

фактически удаляет объект из приложения, нужно использовать конструктор TDib для создания временного объекта.

Класс TDib предусматривает ряд функций доступа, которые можно использовать для опроса объекта TDib и получения информации о

содержащемся в объекте DIB.

Чтобы определить допустимость объекта, вызовите функцию




Содержание  Назад  Вперед