Четвертый Borland C++ и его окружение

         

Класс ios


Класс ios (и следовательно, производные от него классы) содержит указатель на streambuf. Он выполняет форматированный вводвывод с контролем ошибок, используя streambuf.

На следующем рисунке показана схема наследования для всего

семейства классов ios. Например, класс ifstream является производным от istream и fstreambase, а класс istrstream является производным от istream и strstreambase. Поскольку имеет место множественное наследование, данная схема показывает не просто иерархию классов. При множественном наследовании один класс может наследовать от нескольких базовых классов. Это означает, например,

что все элементы (данные и функции) iostream, istream, ostream,

fstreambase и ios являются частью объектов класса fstream. Все

классы в сети ios используют streambuf (либо filebuf или

strstreambuf, которые представляют собой специальные случаи

streambuf) в качестве источника и/или приемника.

ios

^ ^ ^ ^

istream fstreambase strstreambase ostream

^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

ifstream istrstream ofstream ostrstream

istream_withassign istream strstream ostream_withassign

confstream

v v

iostream

^

iostream_withassign

istream_withassign ostream_withassign





Класс ios (iostream.h)

Обеспечивает общие операции для ввода и вывода. Производные

от него классы (istream, ostream, iostream) специализируют

ввод-вывод с помощью операций форматирования высокого уровня.

Класс ios является базовым для istream, ostream, fstreambase и

strstreambase.



Класс iostream


Класс iostream обеспечивает общие методы буферизации и обработки потоков при небольшом объеме или отсутствии форматирования.

streambuf это полезный базовый класс, используемый другими частями библиотеки iostream, хотя также вы можете создавать производные от него классы для собственных функций и библиотек. Классы strstreambuf и filebuf являются производными от streambuf.

streambuf

^ ^ ^

filebuf strstreambuf

conbuf

Класс streambuf обеспечивает интерфейс с памятью и физическими устройствами. Семейство функций-элементов streambuf используется классами, основанными на ios.



Класс iostream (iostream.h)


Данный производный от istream и ostream класс представляет

собой смесь своих базовых классов для ввода и вывода в поток. Он

является базовым для fstream и strstream.



Класс iostream_withassign (iostream.h)


Этот класс представляет собой iostream c добавленными оператором присваивания.



Класс ipstream (objstrm.h)


Обеспечивает базовый класс для чтения (извлечения) альтернативных объектов.



Класс istream (iostream.h)


Обеспечивает форматированный и неформатированный ввод из

streambuf. Для фундаментальных типов операция >> переопределяется. Базовым для данного класса является класс ios.



Класс istream (strstrea.h)


Обеспечивает для strstreambuf операции ввода. Этот класс является производным от strstreambase и istream.



Класс istream_withassign (iostream.h)


Этот класс представляет собой istream с добавленной операцией присваивания.



Класс ofstream (fstream.h)


Является производным от fstreamable и ostream и обеспечивает

для filebuf операции ввода.



Класс ostream (iostream.h)


Обеспечивает для streambuf форматированный или неформатированный вывод. Для всех фундаментальных типов операция << переопределяется. Этот производный от ios класс является базовым для

constream, iostream, ofstream, ostrstream и ostream_withassing.



Класс ostream_withassign (iostream.h)


Этот класс представляет собой ostream с добавленной операцией присваивания.



Класс oststream (strstrea.h)


Является производным от strstreambase и ostream и обеспечивает для strstreambuf операции вывода.



Класс Palette


Класс Palette инкапсулирует палитру цветов Windows, которая

может использоваться с битовыми массивами и DIB. TPalette позволяет вам нестроить таблицу цветов, привести в соответствие отдельные цвета, поместить палитру в буфер обмена Clipboard и т.д.

Построить объект TPalette можно непосредственно, задав атрибуты палитры, или косвенно, задав TPalette& или указатель на

структуру LOGPALETTE. При непосредственном построении палитры

создается новый объект с заданными атрибутами.

При косвенном создании палитры новый объект также создается,

но атрибуты копируются из указанного объекта. Вы можете создать

объект TPalette и из существующего описателя HPALETTE.

Обращаться к объекту TPalette можно через HPALETTE или логическую структуру LOGPALETTE. Для получения HPALETTE из объекта

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

Функция GetObject для TPalette функционирует аналогично

соответствующей функции API Windows. TPalette инкапсулирует также

стандартные функции API для работы с палитрами. Функция GetNearestPaletteIndex приводит цвет в соответствие с записью палитры.

Эта функция имеет единственный параметр (объект TColot) и возвращает индексный номер ближайшего цвета палитры. Функция GetNumEntries не имеет параметров и возвращает число записей в таблице цветов палитры.

Получить значения из диапазона записей таблицы цветов можно

с помощью функции GetPaletteEntries. Эта функция работает аналогично соответствующей функции API Windows. С помощью функции SetPaletteEntries вы можете задать значения в диапазоне записей таблицы цветов. Для изменения размера палитры используется функция

ResizePalette, в параметре которой задается размер новой палитры.

SetPalette устанавливает указанную индексом запись палитры соответственно значению объекту PALETTEENTRY. Эта функция работает

аналогично функции API Windows ResizePalette.

Функция AnimatePalette позволяет вам заменить записи в таблице цветов палитры. В третьем параметре этой функции задается




указатель на массив объектов PALETTEENTRY. Записи, указанные двумя первыми объектами, занимаются значениями из массива.

Для своих объектов палитры вы можете использовать функцию

UnrealizePalette, которая приводит палитру в соответствие с текущей системной палитрой. Эта функция не имеет параметров и ведет

себя как соответствующая функция API Windows.

Функция ToClipboard позволяет поместить палитру в буфер обмена. В качестве параметра этой функции задается ссылка на объект

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

конструктор TPalette.

Две функции Create TPalette вызываются из конструкторов TPalette. Второй параметр Create эквивалентен элементу peFlags

структуры PALETTEENTRY. Функции Create создают LOGPALETE с помощью таблицы цветов из передаваемого во втором параметре битового массива. Вы можете использовать Create для создания 2- 16- или

256-цветных битовых массивов.


Класс проверки допустимости по диапазону


TRangeValidator - это класс проверки допустимости, производный от TFilterValidator. Он воспринимает только числа и добавляет

к конечному результату проверку по диапазону. Этот конструктор

имеет два параметра, определяющие минимальное и максимальное допустимые значения.

Механизм проверки допустимости по диапазону действует как

механизм фильтрации, воспринимающий только цифры от 0 до 9, символы + и -. Таким образом, наследуемая TValidInput пропускает через фильтр только числа. IsValid в TRangeValidator возвращает

True только в том случае, если введенное число является допустимым числом в заданном диапазоне. Если число лежит вне диапазона,

функция-элемент Error возвращает сообщение об ошибке.



Класс проверки допустимости по шаблону


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

ввода. Эти шаблоны совместимы с шаблонами, используемыми в реляционных базах данных Borland, в частности, в Paradox. При построении такого объекта проверки допустимости задаются два параметра:

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

TPXPictureValidator переопределяет функции Error, IsValid и

IsValidInput и добавляет новую функцию-элемент - Picture. Error

выводит сообщение об ошибке, указывающее, каким должен быть формат строки. IsValid возвращает True только при возврате True

функцией Picture. Таким образом, переопределив функцию-элемент

Picture, вы можете создать новые виды проверки допустимости по

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

ввода.



Класс проверки допустимости по таблице


Класс проверки допустимости по таблице TLookupValidator это абстрактный класс, который сравнивает введенное значение со

списком значений. TLookupValidator вводит виртуальную функцию-элемент Lookup. По умолчанию Lookup возвращает True. Производные классы должны переопределять Lookup и сравнивать параметр

со списком элементов, возвращая True в случае совпадения.

IsValid в TLookupValidator возвращает True только если возвращает True Lookup. В производных классах не следует переопределять IsValid. Вместо этого нужно переопределить Lookup. TStringLookupValidator - это экземпляр класса, основанный на TLookupValidator.



Класс проверки допустимости строки


TStringLookupValidator - это пример средства проверки допустимости по таблице. Он сравнивает переданную из редактируемого

управляющего элемента строку с элементами в списке строк и возвращает True, если эта строка содержится в списке. Конструктор

здесь имеет только один параметр - список допустимых строк TSortedStringArray. Чтобы после построения объекта проверки допустимости строки использовать другой список строк, воспользуйтесь

функцией NewStringList, которая отменяет старый список и инсталлирует новый.

TStringLookupValidator переопределяет Lookup и Error. Lookup

возвращает True, если переданная строка содержится в списке, а

Error выводит окно сообщения, указывающее, что строки нет в списке.



Класс pstream (objstrm.h)


Это базовый класс для управления потоковыми объектами.



Класс Rectangle


Ниже показано как можно произвести класс rectangle из shape:

class rect : public shape {

public:

double wd, ht; // Дополнительные данные: размер прямоугольника

// Конструктор для создания объекта rect (прямоугольник)

rect(double x, double y, double w, double h);

double area(void); // Подмена функции area() в классе shape

};



Класс Shape


Ниже показано как нужно определить класс shape на языке C++:

class shape {

public:

double xo, yo; // Расположение фигуры

shape(double x, double y); // Создание конструктором фигуры

virtual double area(void); // Функция, вычисляет поверхность

};



Класс streambuf (iostream.h)


Это базовый класс для всех других классов буферизации. Он

обеспечивает буферный интерфейс между вашими данными и областями

памяти, такими как память физических устройств. К содержимому

этих областей можно обращаться по указателю.



Класс String (cstring.h)


Данный класс использует метод, который называется копированием при записи. В случае чтения несколько экземпляров строки могут ссылаться на одни и те же данные. При записи данных в строку, если на нее ссылаются несколько строк, автоматически создается

копия.



Класс strstream (strstrea.h)


Обеспечивает для strstreambuf одновременный ввод и вывод.

Этот класс является производным от strstreambase и iostream.



Класс strstreambase (strstrea.h)


Специализирует ios для строковых потоков. За исключением

функции-элемента strstreambase::rdbuf, весь класс является защищенными. Этот класс является базовым для strstream, istrstream и

ostrstream.



Класс strstreambuf (strstrea.h)


Специализирует streambuf для форматирования в памяти.



Класс TApplication (applicat.h)


Класс TApplication является производным от TModule и действует в качестве объектно-ориентированной замены прикладного модуля Windows. Классы TApplication и TModule обеспечивают базовое

поведение, необходимое для приложения Windows. Функции-элементы

TApplication создают экземпляры класса, основные окна и обрабатывают сообщения.



Класс TBandInfo (dc.h)


Это структура ObjectWindows, эквивалентная BANDINFOSTRUCT.

Она используется для передачи информации драйверу печати. TBandInfo описывается следующим образом:

struct TBandInfo {

BOOL HasGraphics;

BOOL HasText;

TRect GraphiscRect;

};

HasGraphics имеет значение True при наличии на странице или

в зоне графики. HasText равно True при наличии текста. GraphicsRect определяет область, ограничивающую всю графику на странице.



Класс TBitmap


Класс TBitmap инкапсулирует независимый от устройства битовый массив Windows. Он предусматривает различные конструкторы и

функции-элементы для работы с битовым массивом.

Построить битовый массив можно непосредственно или косвенным

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

В конструкторе объекта битового массива задаются высота, ширина битового массива в элемента изображения, число цветовых

плоскостей битового массива и число бит на элемент изображения.

Вы можете также создать объекты битового массива из существующих

битовых массивов инкапсулированных в объекте TBitmap или содержащихся в структуре BITMAP.

TBitmap предусматривает два конструктора, которые вы можете

использовать для создания битового массива, совместимого с данным

контекстом устройства. Первый конструктор создает битовый массив

заданного размера (высоты и ширины). Третий параметр позволяет

сделать битовый массив выгружаемым. Второй конструктор создает

битовый массив с заданной высотой и шириной, совместимый с контекстом устройства из DIB.

Вы можете создавать битовые массивы из буфера обмена Windows, метафайла или объекта DIB. Чтобы создать битовый массив из

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

буфере обмена и строит по этому описателю объект битового массива. Чтобы создать объект из метафайла, нужно передать TMetaFilePict&, TPalette& и TSize&. Конструктор на основе палитры инициализирует совместимый с устройством битовый массив. Чтобы создать

битовый массив из битового массива, независимого от устройства,

нужно передать конструктору TDib&. Можно также задать палитру.

Можно создать битовый массив, и загрузив его из модуля. При этом

конструктору передается HINSTANCE модуля, содержащего битовый

массив, и идентификатор ресурса битового массива. Можно также

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




HBITMAP.

Вы можете получить доступ к TBitmap через HBITMAP или структуру BITMAP. Чтобы получить HBITMAP из объекта TBitmap, используйте операцию HBITMAP с объектом TBitmap в качестве параметра.

Операция HBITMAP почти никогда явно не вызывается. Для преобразования объекта TBitmap в структуру BITMAP используется функция GetObject (фактические биты массива можно получить с помощью функции GetBitmapBits).

TBitmap инкапсулирует ряд стандартных вызовов API для работы

с палитрами. С помощью функций Width() и Height() вы можете получить ту же информацию, что и с помощью GetObject. Каждая функция

возвращает характеристики объекта битового массива.

Функции GetBitmapDimension и SetBitmapDimension позволяют

вам найти и изменить размеры битового массива. GetBitmapDimension

имеет единственный параметр - ссылку на объект TSize и помещает в

объект TSize размер битового массива. SetBitmapDimension имеет

два параметра: ссылку на объект TSize, содержащий новый размер

битового массива, и указатель на объект TSize, куда функция помещает старый размер.

Функции GetBitmapDimension и SetBitmapDimension изменяют не

фактический размер битового массива в элементах изображения, а

его физический размер, который часто используется программами для

печати или вывода растровых изображений. Это позволяет вам настроить размер битового массива в зависимости от размера физического экрана.

Функции GetBitmap и SetBitmap позволяют вам изменить и опросить биты битового массива. Эти функции имеют по два параметра:

размер массива в байтах и указатель на битовый массив. SetBitmapBits копирует массив в битовый массив (копируется заданное в параметре число байт). GetBitmap заполняет массив битами из битового массива.

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

конструктор TBitmap.

Tbitmap имеет две функции Create. В параметре первой функции

указывается ссылка на объект TBitmap. По существу эта функция копирует переданный объект TBitmap. Во второй функции Create указываются ссылки на объект TDib и объект TPalette. Create создает

контекст устройства, совместимый с TPalette.


Класс TBitmapGadget


TBitmapGadget - это простой класс, который может выводить на

экран массив растровых изображений. Для этого битовые массивы

следует разместить в ресурсе рядом друг с другом (они должны быть

одной ширины).

В конструкторе TBitmapGadget задаются идентификатор ресурса

битового массива, идентификатор реквизита, стиль обрамления реквизита, общее число содержащихся в битовом массиве изображений.

Изменить выводимый реквизитом образ можно с помощью функции SetImage, в параметре которой задается индекс массива изображений.

TBitmapGadget реализует функцию SysColorChange, так что битовые массивы отслеживают системные цвета. Она удаляет битовый

массив, вызывает функцию MapUIColors и воссоздает массив.



Класс TBrush


Класс TBrush инкапсулирует логическую кисть. Он содержит

цвет кисти (инкапсулированный в объекте TColor), ширину кисти, а

также стиль кисти, шаблон или битовый массив.

Построить объект кисти можно непосредственно, задав цвет,

ширину и стиль кисти, или косвенно, через TBrush& или указатель

на структуру LOGBRUSH.

При косвенном создании кисти новый объект также создается,

но атрибуты копируются из указанного объекта. Вы можете создать

объект TBrush из существующего описателя HBRUSH.

Обращаться к TBrush можно через HBRUSH или логическую структуру LOGBRUSH. Для получения HBRUSH из объекта TBrush используйте

операцию HBRUSH с объектом TBrush в качестве параметра. Явно операция HBRUSH почти никогда не вызывается.

Для преобразования TBrush в структуру LOGBRUSH используйте

функцию GetObject. Чтобы сбросить начальную точку объекта кисти,

используйте функцию UnrealizxeObject.



Класс TBrush (gdiobjec.h)


Этот класс является производным от TGdiObject. Он обеспечивает конструкторы для создания на основе точной информации различные виды кистей. Кисть может также создаваться косвенно на основе заимствованного описателя.



Класс TButton (button.h)


Это интерфейсный класс, представляющий интерфейс командных

кнопок. Для создания управляющего в родительском TWindow элемента

типа командной кнопки вы должны использовать TButton. TButton

можно использовать для связи между вашим приложением и управляющими элементами типа командный кнопок TDialog. Это потоковый

класс.

Существует два типа командных кнопок: регулярные и используемые по умолчанию. Используемые по умолчанию кнопки имеют жирную

границу.



Класс TButtonGadget


Реквизиты типа командных кнопок TButtonGadget - это единственный тип реквизитов, с которым пользователь может непосредственно взаимодействовать. Управляющие элементы реквизитов также обеспечивают получение данных от пользователя, но делают это через класс управляющего элемента. Реквизит в этом случае действует как посредник между управляющим элементом и окном реквизитов.

Кнопка-реквизит имеет три состояния: вверх, вниз и промежуточное. Кроме того, при нажатии во всех трех состояниях кнопка может подсвечиваться.

Существует три базовых типа кнопок-реквизитов, команд реквизитов и установки реквизитов. Установка реквизитов можете быть

исключающей (как у кнопок с зависимой фиксацией) или неисключающей (как у кнопок с независимой фиксацией). Команды могут находиться только в "верхнем" состоянии. Установки могут иметь все три состояния.

После нажатия реквизита он перехватывает перемещения "мыши".

Когда "мышь" перемещается вне ограничивающего прямоугольника реквизита без освобождения ее левой кнопки, подсветка отменяется, но

перемещения "мыши" для реквизита все равно отслеживаются. Если

"мышь" без освобождения кнопки снова перемещается внутрь ограничивающего прямоугольника реквизита, он снова подсвечивается. Если

левая кнопка "мыши" освобождается, перемещения "мыши" больше не

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

В конструкторе TButtonGadget задаются идентификатор ресурса

битового массива, выводимого в кнопке (размер которого определяется размерами кнопки), идентификатор реквизита (используется в

качестве команды при его нажатии), тип реквизита (командный, исключающий или не исключающий), разрешение реквизита, состояние

реквизита, повтор (повтор кнопки при удерживании ее в нажатом

состоянии).

Функция ~TBurronGadget удаляет ресурсы битового массива и

занимаемую строкой память.

Для доступа к кнопке-реквизиту вы можете использовать ряд

функций-элементов. Эти функции позволяют вам устанавливать состояние реквизита (SetButtonState), получать его (GetButtonState), и

получать тип кнопки-реквизита (GetButtonType). Модифицировать вид

кнопки-реквизита и ее стиль можно с помощью функций SetNotchCorners и SetShadowStyle.

TButtonGadget переопределяет функцию CommandEnabled TGadget.

Она инициализирует для реквизита сообщение WM_COMMAND_ENABLE.

TButtonGadget реализует функцию SysColorChange, так что битовые

массивы отслеживают системные цвета. Изменение системных цветов

отражается на новой кнопке-реквизите.



Класс TButtonGadget (buttonga.h)


Являясь производным от TGadget, класс TButtonGadget представляет командные кнопки, которые вы можете включать и выключить

щелчком "мыши". Вы можете также применять к реквизитам кнопок атрибуты, такие как цвет, стиль и форму.

В общем случае кнопки классифицируются как командные и атрибутные. Атрибутные кнопки включают в себя кнопки с зависимой и

независимой фиксацией. Объект TButtonGadget отвечает на события

"мыши" следующим образом в соответствии с нажатием кнопки "мыши":

"нажимается" при нажатии кнопки и освобождается, когда кнопка отпускается. Команды можно вводить, когда кнопка "мыши" отжата.

Когда кнопка "мыши" нажата, TButtonGadget перехватывает события

"мыши" и резервирует все сообщения "мыши" для текущего окна. При

нажатии кнопки "мыши" такой перехват отменяется.



Класс TCelArray (celarray.h)


TCelArray - это горизонтальный массив ячеек (единица анимации), созданный разбиением части всего битового массива на формы

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



Класс TCharSet (bitset.h)


Являясь производным от TBitSet, этот класс устанавливает и

сбрасывает байты для группы символов. Вы можете использовать его

для установки и очистки группы символов, таких как буквы верхнего

или нижнего регистра.



Класс TCheckBox (checkbox.h)


Это потоковый интерфейсный класс, который представляет управляющий элемент типа кнопки с независимой фиксацией. Его можно

использовать для создания такого элемента в родительском окне. Он

упрощает также манипуляции с кнопками с независимой фиксацией,

созданными ранее в ресурсе диалогового окна. Такая кнопка имеет

три состояния: отмечена (нажата), не отмечена (не нажата) и не

определена (серая). Связанные управляющие элементы такого типа

можно группировать.



Класс TChooseColorDialor (chooseco.h)


Объект данного класса представляет интерфейсные элементы режимного диалогового окна, допускающие выбор цвета и специальную

настройку цветов. Если задать в качестве родительского невидимое

всплывающее окно и сделав всплывающее окно дочерним по отношению

к основному окну приложения, TChooseColorDialog может принять для

пользователя безрежимный вид.



Класс TChooseFontDialog (choosefo.h)


Представляет интерфейсные элементы режимного диалогового окна, создающие определяемое системой диалоговое окно, из которого

пользователь может выбрать шрифт, стиль шрифта, его размер, цвет

и характеристики (такие как подчеркивание). Если задать в качестве родительского невидимое всплывающее окно и сделав всплывающее

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



Класс TClientDC (dc.h)


Класс DC является производным от TWindowDC, а TClientDC

обеспечивает доступ к клиентной области окна.



Класс TClipboard (clipboard.h)


Инкапсулирует несколько функции API Windows, которые работают с данными буфера Clipboard. Вы можете открывать, закрывать,

очищать и вставлять данные различных форматов между Clipboard и

открытым окном.



Класс TClipboardViewer (clipview.h)


При создании интерфейсного пользовательского элемента TClipboardViewer регистрируется как средство просмотра буфера Clipboard, а при уничтожении - удаляется из цепочки просмотра Clipboard.



Класс TColor (color.h)


Это поддерживающий класс, используемый в сочетании с классами TPalette, TPaletteEntry, TRgbQuad и TRgbTriple для упрощения

всех операций с цветами Windows.



Класс TComboBox (combobox.h)


Этот класс можно использовать для создания в родительском

TWindow комбинированного блока или управляющего элемента комбинированного блока, а также для облегчения взаимодействия приложения

с комбинированными блоками в TDialog. TComboBox наследует свое

поведение от TListBox. Существует три типа комбинированного блока: простой, раскрывающийся и комбинированный блок с раскрывающимся списком.



Класс TComboBoxData (combobox.h)


Это интерфейсный объект, который представляет для TComboBox

буфер передачи.



Класс TCommonDialog (commdial.h)


Этот класс (производный от TDialog) является абстрактным базовым классом для объектов TCommonDialog. Используя общие диалоговые DLL, он обеспечивает базовые функции для создания диалоговых окон.



Класс TControl (control.h)


Унифицирует производные классы управляющих элементов, такие

как TScrollBar, TControlGadget и TButton. Управляющие объекты в

производных классах используются для представления интерфейсных

управляющих элементов в Windows. Управляющий объект должен использоваться для создания управляющего элемента в родительском

TWindow или используется для связи приложения с управляющими элементами TDialog. Это потоковый класс.



Класс TControlBar


Этот класс реализует строку (комплект) инструментальных

средств, которые можно найти во многих популярных приложениях. В

эту строку вы можете включить любой тип реквизита.

В конструкторе TControlBar задается указатель на родительское окно комплекта инструментальных средств, направление вывода

(горизонтальное или вертикальное), шрифт (указатель на TFont) и

модуль (TModule или 0).



Класс TControlBar (controlb.h)


Класс, производный от класса TGadgetWindow и реализующий полосу управляющих элементов, обеспечивающий к ним мнемонический

доступ. Для включения полосы в окно можно определить таблицу реакции.



Класс TControlGadget


TControlGadget - это достаточно простой класс, который служит интерфейсом между обычным управляющим элементом Windows и окном реквизита. Это позволяет использовать в окне реквизитов стандартные управляющие элементы Windows, такие как полоса прокрутки,

строка состояния и др.

В конструкторе TControlGadget задаются управляющий элемент

(ссылка на объект ObjectWindows) и стиль обрамления реквизита.

Функция ~TControlGadget освобождает занимаемую объектом управляющего элемента память.



Класс TControlGadget (controlg.h)


Этот класс является "суррогатом" класса TControl, благодаря

которому вы можете помещать объекты управляющих элементов в окно

реквизитов. Если необходимо TControlGadget устанавливает родительское окно и создает реквизит управляющего объекта.



Класс TCriticalSection::Lock (thread.h)


Этот вложенный класс блокирует и разблокирует критические

секции (участки программы), где допускается выполнение только одной нити.



Класс TCriticalSection (thread.h)


Этот класс обеспечивает системно-независимый интерфейс для

критических секций нитей. Объект этого класса может использоваться в сочетании с объектами TCritical::Lock чтобы гарантировать,

что в каждый момент времени в критической части кода может выполняться только одна нить.



Класс TCursor


Этот класс инкапсулирует описатель курсора и конструктор для

создания экземпляра объекта TCursor. Вы можете использовать класс

TCursor для построения курсора из ресурса или явной информации.

Построить курсор можно несколькими способами: из существующего объекта TCursor, из ресурса в текущем приложении, из ресурса

в другом приложении или на основе заданного размера и явной информации. Для 32-разрядных приложений можно также использовать

два специальных конструктора, один из которых имеет два параметра

(указатель на массив буферов, содержащих биты данных курсора, и

размера - числа бит в буфере), а другой - один параметр (структуру ICONINFO). ~TCursor удаляет пиктограмму и освобождает занимаемую ей память.

Обращаться к TCursor можно через HCURSOR. Чтобы получить

HCURSOR из объекта TCursor, используйте операцию HCURSOR. В

32-разрядных приложениях доступна также функция TIcon GetIconInfo

с единственным параметром - указателем на структуру ICONINFO. Она

заполняет структуру ICONINFO и возвращает True в случае успешного

выполнения.



Класс TCursor (gdiobjec.h)


Этот класс, производный от TGdiobject, представляет объектный класс курсора GDI. Конструкторы TCursor могут создавать курсоры из ресурсов или на основе точной информации.



Класс TDate (date.h)


Класс TDate представляет дату. Он имеет элементы для чтения,

записи и преобразования даты.



Класс TDC


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

на конкретную специфику класса, TDC содержит большую часть необходимых функций.

Из-за большого числа содержащихся в этом классе функций мы

не будет обсуждать каждую из них подробно, а коснемся лишь общих

функциональных возможностей TDC, специфических для ObjectWindows

функций и функций типа API. Многие функции TDC аналогичны функциям API Windows.

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

деструктор. В конструкторе задается HDC - описатель контекста

устройства. По существу это означает, что перед построением объекта TDC вы должны иметь существующий контекст устройства. Обычно

TDC не требуется строить непосредственно. Вместо этого при передаче некоторого контекста устройства как параметра функции или

указателя используется объект TDC. Указатель может ссылаться на

некоторый контекст устройства, содержащийся в TDC или производном

от него объекте.

~TDC уничтожает объекты и восстанавливает в контексте устройства все объекты по умолчанию. TDC предусматривает также два

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

В TDC имеется одна операция преобразования, HDC, которая

позволяет вам возвратить контекст устройства. Данная операция чаще всего вызывается неявно.

Вы можете сохранить и восстановить контекст устройства аналогично тому, как используются функции SaveDC и RestoreDC. Вы можете также переустановить контекст устройства с помощью функции ResetDC. Единственный параметр ResetDC - это ссылка на структуру

DEVMODE.

Для получения информации об устройстве можно использовать

функцию GetDeviceCaps. Эта функция имеет один параметр - индекс

типа получаемой из контекста устройства информации. Возможные

значения этого параметра те же, что и функции API Windows.

Функция GetDCOrg позволяет найти логические координаты текущего контекста устройства в абсолютных физических координатах

устройства. В параметре этой функции задается ссылка на структуру




TPoint, а возвращаемое значение говорит об успешном или неуспешном выполнении.

Функция SelectObject используется для включения объекта GDI

в контекст устройства. Эта функция имеет 4 версии с различными

параметрами. Используемая версия зависит от типа выбираемого объекта. Функция TMemoryDC позволяет выбрать битовый массив.

Выбираемые в контексте устройства графические объекты обычно

существуют как логические объекты, содержащие информацию, необходимую для создания объекта. Графические объекты связываются с логическими объектами через описатель Windows. Когда в контексте

устройства выбирается графический объект, в контексте устройства

создается физический инструмент.

С помощью функции SelectStockObject можно выбрать стандартный объект. Эта функция имеет один параметр, эквивалентный параметру, используемому при вызове функции API GetStockObject. По

существу эта функция эквивалентна двум вызовам: GetStockObject

(для получения стандартного объекта) и SelectObject (для включения стандартного объекта в контекст устройства).

TDC предусматривает функции для восстановления в контексте

устройства исходных объектов. Это RestoreBrush, RestorePen, RestoreFont и RestorePalette. RestoreTextBrush можно использовать

только для 32-разрядных приложений. Все эти функции вызываются

функцией RestoreObjects.

GetBrushOrg имеет один параметр - ссылку на объект TPoint.

Она помещает в него координаты начала кисти. Функция SetBrushOrg

имеет еще один параметр - TPoint*. Эта функция устанавливает начала кисти контекста устройства в значения x и y первого объекта

TPoint. Второй параметр по умолчанию равен 0. Если вы передаете

указатель на TPoint, TDC::SetBrushOrg помещает в x и y объекта

старые значения кисти.

TDC обеспечивает функции для работы в контексте устройства с

палитрами и цветами: GetNearestColor, GetSystemPaletteEntries,

GetSystemPaletteUs, RealizePalette, SetSystemPaletteUse и UpdateColors.

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



функциям API с теми же именами, но в каждой из них может быть

опущен параметр HDC: GetBkColor, GetBkMode, GetPolyFillMode, GetROP2, GetStretchBltMode, GetTextColor, SetBkColor, SetBkMode,

SetPolyFillMode, SetROP2, SetStretchBltMode и SetTextColor. Функция SetMiterLimit доступна только в 32-разрядных приложений.

Для установки области просмотра и режимов отображения окна

используйте следующие функции: GetMapMode, GetViewportExt, GetVieportOrg, GetWindowExt, GetWindowOrg, OffsetViewportOrg, GetViewportExt, OffsetWindowOrg, ScaleViewportExt, ScaleWindowExt, SetWindowExt, SetMapMode, SetViewportExt, SetViewportOrg, SetWindowExt и SetWindowOrg. Для 32-разрядных приложений доступны также

функции ModifyWorldTransform и SetWorldTransform.

Функции координат преобразуют логические координаты в физические и наоборот. Это функции DPtoLP и LPtoDP. Для задания и

считывания простых и сложных областей в области отсечения контекста устройства используются функции ExcludeClipRect, ExcludeUpdateRgn, GetBoundsRect, GetClipRgn, IntersectClipRect, OffsetClipRgn, PtVisible, RectVisible, SelectClipRgn и SetBoundsRect.

Для доступа к метафайлам служат функции EnumMetaFile, PlayMetaFile, PlayMetaFileRecord. Для перемещения в текущую точку используются три версии функции MoveTo (эта функция перемещает перо

в точку с заданными координатами).

В параметре функции GetCurrentPosition задается ссылка на

объект TPoint. Она помещает координаты текущей позиции в объект

TPoint.

Для доступа к шрифтам и работы с ними используйте функции

TDC для работы со шрифтами: EnumFontFamilies, EnumFonts, GetAspectRatioFilter, GetCharABCWidth, GetCharWidth, GetFontData и

SetMapperFlags.

Функции работы с маршрутом доступны только для 32-разрядных

приложений. За исключением того, что эти функции не требуют параметра HDC, эти функции совпадают с соответствующими функциями

Win32: BeginPath, CloseFigure, EndPath, FillPath, FlattenPath,

PathToRegion, SelectClipPath, StrokedAndFillPath, StrokePath и

WidenPath.

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

формы, битовые массивы и текст. Почти все эти функции имеют несколько версий, одна из которых почти идентична соответствующей

функции API (за исключением отсутствия параметра HDC), а альтернативные версии, использующие TPoint, TRect, TRegion и другие

данные инкапсулируемые ObjectWindows данные делают вызовы более

понятными.


Класс TDC (dc.h)


Это корневой класс для оболочек GDI DC. Каждый объект TDC

имеет элемент данных Handle типа HDC (описатель контекста устройства). Таким образом, функции API Windows, требующие аргумента

HDC, могут вызываться соответствующей функцией-элементом TDC без

явного аргумента описателя. Объекты DC могут создаваться непосредственно конструкторами TDC или через конструкторы специализированных подклассов (что обеспечивает нужное поведение). Объект

DC может строиться с уже существующим или заимствованным описателем DC, либо с самого начала путем указания информации об устройстве/драйвере.



Класс TDecorated (decframe.h)


Этот класс автоматически позиционирует свое клиентное окно

(которое задается вами), и оно становится равным по размеру прямоугольнику клиента. Вы можете добавить дополнительные элементы,

такие как полосы прокрутки и строки состояния. Это потоковый

класс.



Класс TDecoratedMDIFrame (decmdifr.h)


Это рамка MDI, поддерживающая дочерние окна с дополнительными элементами. TDecoratedMDIFrame - потоковый класс.



Класс TDesktopDC (dc.h)


Класс DC, производный от TWindowDC и обеспечивающий доступ к

клиентной области окна оперативной области - области экрана, расположенной за всеми другими окнами.



Класс TDialog (dialog.h)


Объекты данного класса представляют собой интерфейсные элементы режимных и безрежимных диалоговых окон. (При открытии режимного диалогового окна операции в родительском окне запрещаются.) Объект TDialog имеет соответствующее определение ресурса,

описывающее размещение и внешний вид его управляющих элементов.

Идентификатор данного определения ресурса передается конструктору

объекта TDialog. TDialog ассоциируется с режимными и безрежимными

интерфейсными элементами с помощью функцию-элементов Execute и

Create. Это потоковый класс.

ObjectWindows предусматривает трехмерную поддержку диалоговых окон. Если ваше приложение предполагает использование DLL

CTL3D, его нужно зарегистрировать с помощью EnableCtl3d. Для диалоговых окон ObjectWindows обеспечивает также поддержку BWCC.



Класс 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.

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




IsOK, которая не имеет параметров и возвращает True в случае допустимости объекта. Функция IsPM также не имеет параметров и

возвращает True, если DIB имеет представление, совместимое с Presentation Manager. Функции Width и Height возвращают ширину и высоту битового массива в элементах изображения. Функция Size возвращает ту же информацию в объекте TSize. Функция NumColor возвращает число используемых в битовом массиве цветов. StartScan предусмотрена для совместимости со старыми программами и всегда

возвращает 0. NumScan также обеспечивает совместимость и возвращает высоту DIB в элементах изображения. Функция Usage указывает,

в каком режиме находится DIB (DIB_RGB_COLORS или DIB_PAL_COLORS).

Функция WriteFile записывает объект DIB на диск.

Работа с палитрой в режиме RGB

DIB может включать в себя цветовые значения двумя способами.

В режиме палитры цветовая таблицы DIB. Сами значения цветов не

указывают конкретного цвета. Эти являются индексами соответствующей записи текущей палитры. В режиме RGB каждая запись в таблице

цветов DIB представляет фактическое значение цвета RGB. Переключиться из RGB на режим палитры и обратно можно с помощью функций

ChangeModeToPal и ChangeModeToRGB.

Когда вы переключаетесь в режим палитры с помощью ChangeModeToPal, в качестве палитры DIB используется параметр TPalette&.

Каждый используемый в DIB цвет отображается в палитру и преобразуется в индекс палитры. При переключении в режим RGB с помощью

ChangeModeToRGB параметр TPalette& используется для конвертирования индексов палитры в содержащиеся в палитре эквиваленты RGB.

Если вы работаете в режиме RGB, то можете использовать для

доступа к палитре цветов DIB и ее изменения следующие функции:

Функция Назначение
GetColor Получает любую запись в палитре цветов DIB по

индексу в таблице цветов. Возвращается объект TColor.
SetColor Изменяет запись в таблице цветов DIB. В параметрах указываются индекс в таблице цветов и

новое значение.
FindColor Сравнивает объект TColor с записью в таблице

цветов, используя функцию FindColor. В пара-

метре задается объект TColor.
MapColor Заменяет цвет в существующей таблице цветов.

Имеет 3 параметр: TColor, содержащий заменяемый цвет, TColor c новым цветом, и значение, указывающее, нужно ли заменить все вхождения.
GetIndex Позволяет получить индекс палитры любой для

любой таблицы цветов. Параметр задает индекс в таблице цветов. Возвращается значение индекса палитры.
FindIndex Находит индекс палитры по записи таблицы цветов. Выполняет поиск по таблицам цветов DIB. пока не найдет заданное в параметре значение.
MapIndex Заменяет цвет на цвет, уже существующий в

таблице цветов DIB. В параметрах задаются индекс для замены, новый индекс палитры, помещаемый в таблицу цветов, и значение, определяющее, нужно ли заменить все вхождения.

Класс TDib (gdiobjec.h)


Этот класс, производный от TGdiObject, представляет объекты

DIB (Device Independent Bitmap). TDibDC инкапсулирует создание DC

с помощью DIB.DRV (драйвера GDI Windows). Объекты DIB не имеют

описателя Windows. Это просто структуры, содержащие информацию о

формате и палитре и битовый набор или набор элементов изображения. TDib позволяет работать с объектами DIB как с объектами GDI.



Класс TDibDC (dc.h)


Класс DC, производный от TDC и обеспечивающий с помощью

драйвера DIB.DRV доступ к независимым от устройства битовым массивам (DIB).



Класс TDocManager (docmanag.h)


Создает объект администратора документов, который управляет

списком текущих документов и зарегистрированных шаблонов, обрабатывает стандартные команды файлового меню и выводит пользовательский интерфейс для окон файла и блоков выбора. Чтобы обеспечить поддержку для документов и отображаемых элементов, этот объект должен создаваться приложением и подключаться к документу.

Администратор документов обычно обрабатывает события от имени документов, используя таблицу реакции. Администратор документов может в ответ на команды создавать соответствующие документы

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

основное окно, и наконец в приложение, которое передает их администратору документов.

При создании объектов указанного класса или производных

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

dmMDI и dmSDI операцию OR. Пункты меню администратора документов

можно разрешить или запретить.

Когда приложение непосредственно создает новый документ и

отображаемый документ, вы можете подключить отображаемый элемент

к окну-рамке, создать дочерний MDI и свободное окно.

TDocManager и производные классы могут создавать и обслуживать специализированные средства, например, OLE-сервер.



Класс TDocTemplate (docmanag.h)


Это абстрактный базовый класс, обеспечивающий функциональные

возможности шаблона документа. Классы TDocTemplate создают документы и отображаемые элементы и обрабатывают наименование и просмотр документов. Администратор документов поддерживает список текущих объектов шаблонов. Каждый тип документа требует отдельного

шаблона документа.



Класс TDocTemplateT<D,V> (docmanag.h)


При регистрации соответствующего документа и классов отображаемых элементов этот параметризованный класс используется для

построения конкретного документа и отображаемого элемента (D

представляет класс документа, а V - класс отображаемого элемента). Параметризованные шаблоны классов создаются с помощью макрокоманды, которая генерирует также соответствующую потоковую поддержку. Для документов и классов отображаемых элементов используются параметризованные подклассы. Шаблон имени класса используется как typedef для параметризованных классов.

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

удалении шаблона документа вызывается функция удаления шаблона, и

он становится невидимым для пользователя. Однако в памяти он будет сохраняться, пока существуют документы.



Класс TDocument (docview.h)


TDocument - это абстрактный базовый класс, используемый как

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

Чтобы послать сообщения соответствующим отображаемым элементам, документ поддерживает список всех существующих для данного

документа отображаемых элементов и взаимодействует с ними с помощью механизма обработки событий ObjectWindows. Вместо функции

SendMessage документ обращается к таблице событий отображаемого

элемента. Отображаемый элемент может обновлять данные документа,

вызывая функцию-элемент конкретного документа. Отображаемые элементы могут также представлять формируемые документом потоки.

Документы и отображаемые элементы образуют список характеристик, используемых приложением. При их создании и уничтожении

приложению посылаются сообщения, которое может запросить характеристики для определения характера обработки или отображения документа. Пригодность для данного документа конкретного отображаемого элемента должен определять администратор документов. Так как

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

базовом классе. Каждый производный должен класс реализовывать

свои собственные типы атрибутов на основе собственных типов атрибутов строковых или двоичных данных. Если производный класс дублирует имена характеристик родительского класса, он должен обеспечивать такое же поведение и типы данных.

Хотя документы уже связаны с файлами, он не обязательно

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

каталогов дисков и т.д.



Класс TDocument::List (docview.h)


Это вложенный класс, инкапсулирующий цепочку документов. Он

допускает сложение, удаление и уничтожение документов в списке

документов.



Класс TDropInfo (point.h)


Это простой класс, поддерживающий буксировку имени файла и

операцию "перетаскивания" "мышью".



Класс TEdit (edit.h)


TEdit - это интерфейсный объект, представляющий в Windows

интерфейс редактируемого управляющего элемента. Объект TEdit должен использоваться для создания редактируемого управляющего элемента в родительском TWindow. TEdit может также способствовать

передаче данных между вашим приложением и редактируемыми управляющими элементами TDialog. Это потоковый класс.

Редактируемый управляющий элемент может быть однострочным и

многострочным (содержать несколько строк текста). Позиция первого

символа в управляющем элементе равна 0.



Класс TEditFile (editfile.h)


TEditFile - это окно редактирования файла. Элементы этого

класса управляют диалоговым окном и автоматически отвечают на такие команды как Open, Read, Save и др.



Класс TEditSearch (editsear.h)


TEditSeach - это редактируемый управляющий элемент, отвечающий на команды меню File, Replace и FindNext. Это потоковый

класс.



Класс TEditView (editview.h)


Этот класс является производным от TView и TEditSearch и

обеспечивает в отображаемом элементе (класса TEdit) перевод на

новую строку. Этот потоковый класс включает в себя несколько

функцию обработки событий, обрабатывающих сообщения, передаваемые

между документом и его отображаемыми элементами.



Класс TEventHandler (enenthan.h)


Это базовый класс, из которого вы можете создавать производные классы для обработки сообщений.



Класс TFileDocument (filedoc.h)


Этот производный от TDocument класс открывает и закрывает

отображаемые элементы и обеспечивает для них потоковую поддержку.

Потоки создаются с помощью файловых средств Windows.



Класс TFileOpenDialog (opensave.h)


Это режимное диалоговое окно, которое позволяет вам задать

имя открываемого файла.



Класс TFileSaveDialog (opensave.h)


Это режимное диалоговое окно, позволяющее вам вводить имя

сохраняемого файла.



Класс TFileStatus (file.h)


Инкапсулирует стандартные операции с файлами и характеристики файлов.



Класс TFindReplaceDialog (fingrepl.h)


Это абстрактный базовый класс для безрежимного диалогового

окна, которое позволяет вам искать и заменять текст. TFindReplaceDialog взаимодействует с окном-владельцем с помощью зарегистрированного сообщения.



Класс TFloatingFrame (floaffra.h)


Этот класс, производный от TTinyCaption и TFloatingFrame,

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

месте родительского окна. За исключением добавления строки заголовка, его поведение совпадает с TFrameWindow. Таким образом приложение, использующее TFrameWindow, может легко получить функциональные возможности TFloatingFrame простым изменением имени класса. При наличии клиентного окна свободная рамка сжимается, чтобы

поместиться в это окно и оставить место для полей рамки.



Класс TFont


Класс TFont позволяет вам создать и использовать в своих

приложениях шрифты Windows. Класс TFont инкапсулирует все атрибуты логического шрифта.

Построить объект TFont можно непосредственно, задав атрибуты

шрифта, или косвенно, задав TFont& или указатель на структуру

LOGFONT. При непосредственном построении шрифта создается новый

объект с заданными атрибутами.

При косвенном создании шрифта новый объект также создается,

но атрибуты копируются из указанного объекта. Вы можете создать

объект TFont и из существующего описателя HFONT.

Обращаться к объекту TFont можно через HFONT или логическую

структуру LOGFONT. Для получения HFONT из объекта TFont используйте операцию HFONT с объектом TFont в качестве параметра. Операция HFONT явно почти никогда не вызывается.



Класс TFont (gdiobject.h)


Этот производный от TGdiObject класс обеспечивает конструкторы для создания объектов из явной информации или косвенно.



Класс TFrameWindow (framewin.h)


Этот класс, производный от TWindow, управляет таким специфическим для окна поведением как перемещение с помощью клавиатуры и

обработка команд для клиентных окон. Например, когда окно вновь

активизируется, TFrameWindow отвечает за перемещения активизации

на это окно, добавление элементов меню и поддержку пиктограммы.

Это потоковый класс.



Класс TGadget


Все реквизиты основываются на классе TGadget. Класс TGadget

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

В параметрах конструктора реквизита указывает номер его

идентификатора (произвольное значение) и стиль (None, Plain, Raised, Recessed или Embossed). Деструктор TGadget описывается как

virtual и удаляет реквизит из окна реквизита.

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

возвращает целочисленный идентификатор. Идентификатор реквизита

имеет несколько областей применения:

Вы можете использовать его для идентификации конкретного

реквизита. При большом числе реквизитов в окне реквизитов

легче всего определить используемый реквизит с помощью

идентификатора.

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

Если при нажатии реквизита в вы хотите вывести текстовую

строку или строку сообщения, то можно установить идентификатор в идентификатор строки.

Вы можете проверять и изменять ширину полей, обрамления и

стиль обрамления реквизита. Для этого используются функции SetBorder, GetBorders, SetMargins, GetMargins, SetBorderStyle, GetBorderStyle.

Границей является внешнее обрамление реквизита. Используемая

совместно с функциями SetBorders и GetBorders структура TBorder

имеет 4 элемента данных (Left, Right, Top и Bottom), содержащие

ширину соответствующей границы реквизита.

Полями называется область между обрамлением реквизита и

внутренним прямоугольником реквизита. С функциями SetMargins и

GetMargins используется структура TMargins с 4 элементами данных:

Top, Bottom, Right и Left.

Ограничивающий прямоугольник реквизита - это область, занимаемая реквизитом. Она содержится в структуре TRect и состоит из

относительных координат X и Y верхнего левого и нижнего правого

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




также важное значение для определения нажатия кнопки "мыши" на

реквизите. Для нахождения и задания ограничивающего прямоугольника реквизита используются функции SetBounds (которая для отслеживания изменения и обновления внутреннего состояния реквизита в

производном классе должна переопределяться) и GetBounds.

Функция SetShrinkWrap позволяет автоматически настраивать

размер реквизита в зависимости от размеров окна. Это избавляет

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

и вертикального размера определяют параметры shrinkWrapWidth и

shrinkWrapHeight.

Размером реквизита является размер его ограничивающего прямоугольника. С помощью функции SetSize вы можете настроить размер

реквизита, не изменяя его положение. Для получения размера реквизита используется функция GetDesiredSize. В процессе разметки

окна реквизитов могут изменять желаемый размер реквизита.

Для улучшения интерфейса с пользователем вы можете реализовать функцию SysColorChange. Окно реквизита вызывает функцию SysColorChange каждого содержащегося в окне реквизита, когда окно

получает сообщение WM_SYSCOLORCHANGE. Заданная по умолчанию версия SysColorChange никаких действий не выполняет. Если вы хотите,

чтобы на реквизите отражались изменения системных цветов, нужно

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

Общедоступные элементы данных TGadget Clip и WideAsPossible

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

в окне всего доступного пространства.

С помощью функций SetEnabled и GetEnabled вы можете разрешить и запретить реквизит. Запрещенный реквизит не стирается. В

производном классе вы можете переопределить это поведение.

Функцию CommandEnable можно переопределить в производном

классе для разрешения команд. Заданная по умолчанию версия никаких действий не выполняет.


Класс TGadget (gadget.h)


Это базовый класс для производных классов - TBitMapGadget,

TButtonGadget, TControlGadget, TTextGadget и TSeparatorGadget.

Интерфейсные объекты TGadget принадлежат к окну реквизитов, имеют

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



Класс TGadgetWindow (gadgetwi.h)


Этот класс, производный от TWindow, поддерживает для окна

список неперекрывающихся реквизитов и позволяет вам динамически

упорядочивать комплекты инструментальных средств. Для этих реквизитов вы можете задать следующие атрибуты:

Вывод без перекрытия горизонтально или вертикально. Пози ционирует реквизиты горизонтально или вертикально во внут реннем прямоугольнике.

Шрифт реквизита.

Верхнее, нижнее, правое и левое поля.

Единицы измерения.

Размер окна реквизита.



Класс TGadgetWindowFont (gadgetwi.h)


Этот производный от TFont класс применяется для работы со

шрифтами в окне реквизитов. Вы можете задать размер шрифта в

пунктах и его тип (жирный, наклонный). Для задания типа шрифта

можно использовать константы API Windows (FW_xxxx или FF_xxxx).



Класс TGauge (gauge.h)


Этот производный от TControl класс определяет базовое поведение измерительных управляющих элементов. Такие элементы могут

выводить только горизонтальные или вертикальные горизонтальные

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

продолжительности и непрерывную полосу для вывода информации о

процессах с большой продолжительностью.



Класс TGdiObject (gdiobject.h)


Это корневой псевдоабстрактный базовый класс для GDI-оболочек ObjectWindows. Вызовы API Windows, воспринимающие аргументы

обработки GDI, обычно заменяются вызовами более простых функций-элементов ObjectWindows, в который описатель поставляется

другим объектом. Классы TGdiObject, с которыми вы работаете, позволяют вам работать с описателем GDI и строить объект С++ с помощью псевдонима описателя. Обычно иерархия классов, построенных

на базе TGdiObject, обрабатывают все объекты GDI независимо от

объектов DC.

Объект TGdiObject поддерживает описатель GDI и флаг ShouldDelete, определяющий, когда объект и описатель должны уничтожаться.



Класс TGdiObject::TXGdi (dgibase.h)


Описывает исключительную ситуацию, возникающую в результате

проблем в функционировании GDI (например, создания слишком большого числа DC TWindow). Такая исключительная ситуация может возникать, если не найден драйвер dc, или не читается файл DIB.



Класс TGroupBox (groupbox.h)


Экземпляр TGroupBox - это интерфейсный объект, представляющий в Windows соответствующий элемент группового блока. В общем

случае объекты TGoupBox в диалоговых блоках или окнах (TDialog)

не используются, но они используются, когда вы создаете в окне

групповой блок.

Хотя групповые блоки не выполняют на экране активной функции, они визуально унифицируют группу блоков выбора, таких как

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



Класс THSlider (slider.h)


Этот класс, производный от TSlider, реализует скользящий

маркер горизонтальной полосы прокрутки.



Класс TIC (dc.h)


Это производный от TDC класс DC, обеспечивающий конструктор

для создания объекта DC на основе явных имен драйвера, устройства

и портов.



Класс TIcon


Класс TIcon инкапсулирует описатель пиктограммы и конструкторы для инициализации объекта TIcon. Вы можете использовать

класс TIcon для построения пиктограммы из ресурса или на основе

явной информации.

Построить пиктограмму можно несколькими способами: из существующего объекта TIcon, из ресурса в текущем приложении, из

ресурса в другом модуле или на основе заданного размера и явной

информации. Для 32-разрядных приложений можно также использовать

два специальных конструктора, один из которых имеет два параметра

(указатель на массив буферов, содержащих биты данных пиктограммы,

и размера - числа бит в буфере), а другой - один параметр (структуру ICONINFO). ~TIcon удаляет пиктограмму и освобождает занимаемую ей память.

Обращаться к TIcon можно через HICON. Чтобы получить HICON

из объекта TIcon, используйте операцию HICON. В 32-разрядных приложениях доступна также функция TIcon GetIconInfo с единственным

параметром - указателем на структуру ICONINFO. Она заполняет

структуру ICONINFO и возвращает True в случае успешного выполнения.



Класс TIcon (gdiobjec.h)


Этот производный от TGdiObject класс представляет класс пиктограмм объектов GDI. Конструкторы TIcon может создавать пиктограммы из ресурса или из явной информации.

Поскольку пиктограммы не являются фактически объектами GDI,

деструктор TIcon переопределяет базовый деструктор.



Класс TInput (inputdia.h)


Обеспечивает общий диалоговый блок для получения вводимого

пользователем текста. При построении диалогового блока задаются

заголовок, подсказка и используемый по умолчанию текст. Это потоковый класс.



Класс TInStream (docview.h)


Этот производный от TStream и istream является базовым классом, используемым для определения потоков ввода для документов.