Visual C++. Описание стандартных классов
Страница 2.


 
GetUpperBound
int GetUpperBound() const;
Возвращаемое значение
Максимальный индекс элемента массива. Если возвращаемое значение равно -1, то данный массив не содержит элементов.
Описание
Возвращает максимальный индекс элемента массива. Поскольку первый элемент массива имеет нулевой индекс, максимальный индекс элемента массива всегда на 1 меньше, чем размер массива.
operator [ ]
TYPE& operator [](int nIndex);
TYPE operator [](int nIndex) const;
Аргументы
"sectiontableheader"TYPE - параметр шаблона, определяющий тип объектов, хранящихся в массиве.
"sectiontableheader"nIndex - индекс элемента, к которому необходимо получить доступ.
Описание
Эти операторы могут использоваться вместо функций SetAt и GetAt. Первый оператор используется для обычных массивов и может вызываться как с левой, так и с правой стороны от оператора присваивания. Второй оператор используется для массивов констант и может вызываться только с правой стороны оператора присваивания. В отладочной версии библиотеки производится проверка того, что используемый индекс массива находится в разрешенном диапазоне значений.
RemoveAll
void RemoveAll();
Описание
Удаляет все указатели из массива. Если массив уже пуст, функция все равно работает.
SetSize
void SetSize(int nNewSize, int nGrowBy = -1); throw(CMemoryException);
Аргументы
"sectiontableheader"nNewSize - новый размер массива (количество элементов). Должен иметь значение большее или равное 0.
"sectiontableheader"nGrowBy - минимальное количество элементов, на которое будет увеличен размер массива при необходимости.
Описание
Устанавливает размер пустого или существующего массива. Выделяет память в случае необходимости. Если новый размер массива меньше его прежнего размера, то массив усекается и вся неиспользуемая память освобождается. Для повышения производительности приложений, использующих массив, необходимо вызвать функцию SetSize до начала работы с ним. Правильный выбор ее аргументов позволит исключить или существенно уменьшить объем операций по перераспределению памяти и копирования массива при добавлении к нему элементов. Аргумент nGrowBy влияет только на распределение памяти при увеличении размеров массива. Его значение никак не отражается на возвращаемых значениях функций GetSize и GetUpperBound. Если используется значение, выбранное по умолчанию, библиотека MFC выделяет память таким образом, чтобы избежать фрагментации памяти и оптимизировать работу с массивом для большинства практических случаев.
CBitmap
Объекты класса CBitmap содержат функции для работы с битовыми образами интерфейса графических устройств Windows. Для использования объекта класса CBitmap его необходимо создать с помощью конструктора, а затем связать с ним дескриптор битового образа с помощью одной из функций инициализации. После этого можно вызывать функции данного класса. Описание данного класса содержится в файле заголовка afxwin.h.
CreateCompatibleBitmap
BOOL CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight);
Возвращаемое значение
Ненулевое, в случае успешного завершения работы функции, и нулевое в противном случае.
Аргументы
"sectiontableheader"pDC - указатель на объект класса контекста устройства.
"sectiontableheader"nWidth - определяет ширину битового образа (в элементах изображения).
"sectiontableheader"nHeight - определяет высоту битового образа (в элементах изображения).
Описание
Инициализирует битовый образ, делая его совместимым с контекстом устройства, определяемого аргументом pDC. Битовый образ имеет то же число цветовых битовых плоскостей или то же число битов, используемых для кодирования цвета каждого из элементов изображения, что и указанный контекст устройства. После этой операции данный битовый образ может быть выбран в качестве текущего битового образа контекста устройства на который указывает аргумент pDC. Если аргумент pDC указывает на контекст устройства памяти, инициализированный битовый образ имеет тот же формат, что и текущий битовый образ указанного контекста устройства. Контекст устройства памяти представляет собой область памяти, представляющую экран дисплея. Он может использоваться для подготовки изображений перед выводом их на экран. При создании контекста устройства памяти GDI автоматически выбирает в него монохромный битовый образ. Поскольку в контекст устройства памяти могут быть выбраны как монохромные, так и цветные битовые образы, формат битового образа, возвращаемый функцией CreateCompatibleBitmap, использующей данный контекст устройства, может не совпадать при различных вызовах. Однако, во всех остальных случаях битовый образ имеет формат, определяемый только возможностями устройства. По завершении работы с объектом класса CBitmap, инициализированным функцией CreateCompatibleBitmap, необходимо сначала удалить битовый образ из контекста устройства, а затем уничтожить сам объект класса CBitmap.
GetBitmapBits
DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const;
Возвращаемое значение
Нулевое значение в случае возникновения ошибки, и скопированное количество байт в битовом образе в противном случае.
Аргументы
"sectiontableheader"dwCount - определяет количество байт, которые необходимо скопировать.
"sectiontableheader"lpBits - указатель на буфер, в который будет записан битовый образ. Битовый образ представляет собой байтовый массив. Хранение информации производится по линиям горизонтальной развертки, для хранения которых используются 16-битные структуры. Поэтому, если битовый образ содержит нечетное количество столбцов, и для хранения информации о цвете каждого из элементов изображения используется нечетное количество байт, объем памяти, необходимый для хранения одной строки горизонтальной развертки будет на один байт превышать ее действительный размер.
Описание
Копирует битовый образ из объекта класса CBitmap в буфер, на который указывает аргумент lpBits. Аргумент dwCount определяет количество байт, которое необходимо скопировать в данный буфер. Для определения корректного значения аргумента dwCount следует вызывать функцию CGdiObject::GetObject для данного объекта класса битового образа.
SetBitmapBits
DWORD SetBitmapBits(DWORD dwCount, const void* lpBits);
Возвращаемое значение
Нулевое значение в случае возникновения ошибки, и скопированное количество байт в битовом образе в противном случае.
Аргументы
"sectiontableheader"dwCount - определяет число байт, которое необходимо скопировать.
"sectiontableheader"lpBits - указатель на область в оперативной памяти, из которой следует скопировать битовый образ в объект класса CBitmap.
Описание
Присваивает битам в битовом образе значения, содержащиеся в массиве lpBits.
CButton
Класс CButton содержит функции для работы с кнопками Windows. Кнопка представляет собой маленькое, прямоугольное дочернее окно, которое может находиться в двух состояниях, переключаемых щелчками мыши или клавишами клавиатуры. Данный элемент управления может использоваться самостоятельно или в группах. В зависимости от типа кнопки связанный с ней текст может располагаться внутри данного элемента управления или рядом с ним. Изменение состояния кнопки обычно отражается при ее отображении на экране. Типичным примером кнопок являются флажки, переключатели и простые кнопки. К какому из данных типов кнопок будет относиться объект класса CButton, определяется ее стилем, задаваемым в функции Create при его создании. Класс CBitmapButton, производный от класса CButton позволяет получать кнопки, в которых вместо текста помещается растровое изображение. Класс CBitmapButton позволяет использовать различные битовые образы для нажатой, отжатой, получившей фокус ввода и недоступной кнопок. Объект данного класса может быть создан с использованием шаблона диалога или непосредственно пользователем. В обоих случаях сначала вызывается конструктор класса CButton, создающий объект данного класса, а затем вызывается функция Create, создающая кнопку Windows и связывающая ее с объектом класса CButton. Объекты класса, производного от класса CButton можно создавать за один шаг. Для этого в конструкторе данного класса нужно вызвать функцию Create. Для обработки сообщений Windows, посылаемых объектом класса кнопки объекту класса родительского окна (обычно это объект класса, производного от класса CDialog), необходимо добавить в карту сообщений родительского класса соответствующие макросы, а в сам класс - включить соответствующие функции обработки сообщений. Макрос карты сообщений имеет следующий формат:
ON_Notification(id, memberFxn),
где параметр id определяет идентификатор дочернего окна элемента управления, а memberFxn - имя функции обработки данного сообщения. Функция обработки сообщения объявляется следующим образом:
afx_msg void memberFxn();
Наиболее часто в качестве макросов обработки сообщений от кнопок используются:
"sectiontableheader"ON_BN_CLICKED - пользователь нажал кнопку;
"sectiontableheader"ON_BN_DOUBLECLICKED - пользователь дважды нажал кнопку.
Объект класса CButton, созданный с использованием ресурса диалога автоматически уничтожается при закрытии диалогового окна. При создании данного объекта пользователем он должен сам удалить его. Если данный объект создавался в куче с использованием оператора new, то при закрытии родительского окна он должен быть уничтожен с использованием оператора delete. Если же он создавался в стеке или был внедрен в объект класса родительского окна диалога, то он уничтожается автоматически. Описание данного класса содержится в файле заголовка afxwin.h.
 
« Предыдущая статья   Следующая статья »