Поиск по сайту:


Смотри также:

MSDN по русски. Описание классов и функций Visual C++ .NET - Статья.

Бердский филиал Новосибирского государственного технического университета - Статья.

Процессоры AMD седьмого поколения: характеристики и применение - Статья.

Новая таблица умножения - Статья.

Все новинки...

Статья «MSDN по русски. Описание классов»

Поделиться:

1    2    3    4    5    6    7    8    9    10   

CArchive
Класс CArchive позволяет сохранять на диске достаточно сложные объекты, а также загружать их в память по мере необходимости. Хранение объектов производится в файлах с последовательным доступом. Данный тип файла можно представить себе как двоичный поток данных. Подобно потокам, используемым в операциях ввода-вывода, архив использует буферизированную запись и чтение данных в память и из памяти. Поток ввода-вывода обрабатывает последовательности символов ASCII, но архив обрабатывает двоичные данные объектов в более эффективном формате, не использующем избыточности. Прежде, чем использовать объект класса архива, необходимо создать соответствующий ему объект класса CFile. При этом необходимо удостовериться, что в этих объектах соответствуют атрибуты доступа к данным. Одному объекту класса CFile может соответствовать не более одного активного объекта класса CArchive. При создании объекта класса CArchive он присоединяется к объекту класса CFile (или производного от него класса), соответствующего открытому файлу. При этом следует также определить режим работы с архивом: будет ли он использоваться для загрузки или сохранения данных. Объект класса CArchive может работать не только с простейшими типами данных, но также и объектами классов, производных от класса CObject, позволяющих сохранять свои данные в последовательном формате. Класс, допускающий сохранение своих данных в последовательном формате, обычно имеет функцию Serialize, а при его описании и реализации используются макросы DECLARE_SERIAL и IMPLEMENT_SERIAL. Перегруженные операторы чтения данных из архива (>>) и записи данных в архив (<<) обеспечивают удобный программный интерфейс работы с архивом. Аргументом данных операторов могут быть как переменные простейших типов, так и объекты классов, производных от класса CObject. Описание данного класса содержится в файле заголовка afx.h.


operator >>
friend CArchive& operator >>(CArchive& ar, CObject *& pOb);
throw(CArchiveException, CFileException, CMemoryException);
friend CArchive& operator >>(CArchive& ar, const CObject *& pOb);
throw(CArchiveException, CFileException, CMemoryException);
CArchive& operator >>(BYTE& by);
throw(CArchiveException, CFileException);
CArchive& operator >>(WORD& w);
throw(CArchiveException, CFileException);
CArchive& operator >>(int& i);
throw(CArchiveException, CFileException);
CArchive& operator >>(LONG& l);
throw(CArchiveException, CFileException);
CArchive& operator >>(DWORD& dw);
throw(CArchiveException, CFileException);
CArchive& operator >>(float& f);
throw(CArchiveException, CFileException);
CArchive& operator >>(double& d);
throw(CArchiveException, CFileException);

Возвращаемое значение
Ссылка на объект класса CArchive, позволяющая использовать в одной строке программы несколько подобных операторов.
Описание
Читает указанный объект или переменную простейшего типа из архива. Если в файле реализации класса использовался макрос IMPLEMENT_SERIAL, то данный оператор вызывает защищенную функцию ReadObject с ненулевым указателем на объект класса, производного от класса CObject, который в свою очередь, вызывает функцию Serialize данного класса.


operator <<
friend CArchive& operator <<(CArchive& ar, const CObject* pOb);
throw(CArchiveException, CFileException);
CArchive& operator <<(BYTE by);
throw(CArchiveException, CFileException);
CArchive& operator <<(WORD w);
throw(CArchiveException, CFileException);
CArchive& operator <<(int i);
throw(CArchiveException, CFileException);
CArchive& operator <<(LONG l);
throw(CArchiveException, CFileException);
CArchive& operator <<(DWORD dw);
throw(CArchiveException, CFileException);
CArchive& operator <<(float f);
throw(CArchiveException, CFileException);
CArchive& operator <<(double d);
throw(CArchiveException, CFileException);

Возвращаемое значение
Ссылка на объект класса CArchive, позволяющая использовать в одной строке программы несколько подобных операторов.
Описание
Записывает указанный объект или переменную простейшего типа в архив. Если в файле реализации класса использовался макрос IMPLEMENT_SERIAL, то данный оператор вызывает защищенную функцию WriteObject с ненулевым указателем на объект класса, производного от класса CObject, который в свою очередь, вызывает функцию Serialize данного класса.
CArchive::GetFile

CFile* GetFile() const;

Возвращаемое значение
Указатель на объект класса CFile, связанный с данным архивом.
Описание
Позволяет получить указатель на объект класса CFile, связанный с данным архивом. Перед использованием данной функции необходимо очистить буфер данного архива с использованием функции Flush.
IsStoring

BOOL IsStoring() const;

Возвращаемое значение
Ненулевое, если архив в настоящее время используется для записи в него информации, и нулевое в противном случае.
Описание
Определяет режим использования архива. Данная функция используется в функции Serialize классов, поддерживающих работу с архивом. Если функция IsStoring возвращает ненулевое значение, то функция IsLoading возвращает нулевое значение. И наоборот.
CArray

template< class TYPE, class ARG_TYPE > class CArray : public CObject

Аргументы

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

Описание
Класс CArray служит для хранения информации в массивах, аналогичных массивам языка C, но допускает динамическое изменение их размера. Индекс первого элемента массива всегда равен 0. Пользователь может зафиксировать верхнюю границу массива или позволить ему расти при добавлении новых элементов, если их индекс превышает его верхнюю границу. Для данного массива всегда выделяется единая область памяти, даже в том случае, когда отдельные его элементы не используются. Как и в случае массивов языка C, время доступа к любому элементу массива CArray постоянно и не зависит от размера массива. Прежде чем использовать массив, необходимо вызвать функцию SetSize для установки его размера и резервирования необходимой памяти. Если при создании массива не использовалась функция SetSize, то при добавлении в него элементов часто будет производиться перераспределение памяти и копирование массива, что может привести к замедлению работы программы и к фрагментации памяти. При необходимости вывести диагностическую информацию об отдельном элементе массива, необходимо указать глубину объекта CDumpContext равной 1 или большей величине. Описание данного класса содержится в файле заголовка afxtempl.h.
Add

int Add(ARG_TYPE newElement); throw(CMemoryException);

Возвращаемое значение
Индекс вставленного элемента
Аргументы

ARG_TYPE - параметр шаблона, определяющий тип аргументов, используемых для ссылки на элементы массива.
newElement - элемент, добавляемый в массив.

Описание
Добавляет новый элемент в конец массива, увеличивая его размер на 1. Если в функции SetSize аргумент nGrowBy имеет значение больше 1 и увеличение размера массива на 1 привело к выходу за пределы отведенной ему памяти, то для массива выделяется дополнительная память, в которую могут быть записаны новые элементы без новой операции выделения памяти, размер которой определяется аргументом nGrowBy функции SetSize. Однако максимальный индекс элемента в массиве возрастает только на 1.
GetSize

int GetSize() const;

Возвращаемое значение
Размер массива
Описание
Возвращает размер массива. Поскольку первый элемент массива имеет нулевой индекс, размер массива всегда на 1 превышает максимальный индекс элемента массива.
GetUpperBound

int GetUpperBound() const;

Возвращаемое значение
Максимальный индекс элемента массива. Если возвращаемое значение равно -1, то данный массив не содержит элементов.
Описание
Возвращает максимальный индекс элемента массива. Поскольку первый элемент массива имеет нулевой индекс, максимальный индекс элемента массива всегда на 1 меньше, чем размер массива.

operator [ ]
TYPE& operator [](int nIndex);
TYPE operator [](int nIndex) const;

Аргументы

TYPE - параметр шаблона, определяющий тип объектов, хранящихся в массиве.
nIndex - индекс элемента, к которому необходимо получить доступ.

Описание
Эти операторы могут использоваться вместо функций SetAt и GetAt. Первый оператор используется для обычных массивов и может вызываться как с левой, так и с правой стороны от оператора присваивания. Второй оператор используется для массивов констант и может вызываться только с правой стороны оператора присваивания. В отладочной версии библиотеки производится проверка того, что используемый индекс массива находится в разрешенном диапазоне значений.
RemoveAll

void RemoveAll();

Описание
Удаляет все указатели из массива. Если массив уже пуст, функция все равно работает.
SetSize

void SetSize(int nNewSize, int nGrowBy = -1); throw(CMemoryException);

Аргументы

nNewSize - новый размер массива (количество элементов). Должен иметь значение большее или равное 0.
nGrowBy - минимальное количество элементов, на которое будет увеличен размер массива при необходимости.

Описание
Устанавливает размер пустого или существующего массива. Выделяет память в случае необходимости. Если новый размер массива меньше его прежнего размера, то массив усекается и вся неиспользуемая память освобождается. Для повышения производительности приложений, использующих массив, необходимо вызвать функцию SetSize до начала работы с ним. Правильный выбор ее аргументов позволит исключить или существенно уменьшить объем операций по перераспределению памяти и копирования массива при добавлении к нему элементов. Аргумент nGrowBy влияет только на распределение памяти при увеличении размеров массива. Его значение никак не отражается на возвращаемых значениях функций GetSize и GetUpperBound. Если используется значение, выбранное по умолчанию, библиотека MFC выделяет память таким образом, чтобы избежать фрагментации памяти и оптимизировать работу с массивом для большинства практических случаев.
CBitmap
Объекты класса CBitmap содержат функции для работы с битовыми образами интерфейса графических устройств Windows. Для использования объекта класса CBitmap его необходимо создать с помощью конструктора, а затем связать с ним дескриптор битового образа с помощью одной из функций инициализации. После этого можно вызывать функции данного класса. Описание данного класса содержится в файле заголовка afxwin.h.
CreateCompatibleBitmap

BOOL CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight);

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

pDC - указатель на объект класса контекста устройства.
nWidth - определяет ширину битового образа (в элементах изображения).
nHeight - определяет высоту битового образа (в элементах изображения).

Описание
Инициализирует битовый образ, делая его совместимым с контекстом устройства, определяемого аргументом pDC. Битовый образ имеет то же число цветовых битовых плоскостей или то же число битов, используемых для кодирования цвета каждого из элементов изображения, что и указанный контекст устройства. После этой операции данный битовый образ может быть выбран в качестве текущего битового образа контекста устройства на который указывает аргумент pDC. Если аргумент pDC указывает на контекст устройства памяти, инициализированный битовый образ имеет тот же формат, что и текущий битовый образ указанного контекста устройства. Контекст устройства памяти представляет собой область памяти, представляющую экран дисплея. Он может использоваться для подготовки изображений перед выводом их на экран. При создании контекста устройства памяти GDI автоматически выбирает в него монохромный битовый образ. Поскольку в контекст устройства памяти могут быть выбраны как монохромные, так и цветные битовые образы, формат битового образа, возвращаемый функцией CreateCompatibleBitmap, использующей данный контекст устройства, может не совпадать при различных вызовах. Однако, во всех остальных случаях битовый образ имеет формат, определяемый только возможностями устройства. По завершении работы с объектом класса CBitmap, инициализированным функцией CreateCompatibleBitmap, необходимо сначала удалить битовый образ из контекста устройства, а затем уничтожить сам объект класса CBitmap.
GetBitmapBits

DWORD GetBitmapBits(DWORD dwCount, LPVOID lpBits) const;

Возвращаемое значение
Нулевое значение в случае возникновения ошибки, и скопированное количество байт в битовом образе в противном случае.
Аргументы

dwCount - определяет количество байт, которые необходимо скопировать.
lpBits - указатель на буфер, в который будет записан битовый образ. Битовый образ представляет собой байтовый массив. Хранение информации производится по линиям горизонтальной развертки, для хранения которых используются 16-битные структуры. Поэтому, если битовый образ содержит нечетное количество столбцов, и для хранения информации о цвете каждого из элементов изображения используется нечетное количество байт, объем памяти, необходимый для хранения одной строки горизонтальной развертки будет на один байт превышать ее действительный размер.

Описание
Копирует битовый образ из объекта класса CBitmap в буфер, на который указывает аргумент lpBits. Аргумент dwCount определяет количество байт, которое необходимо скопировать в данный буфер. Для определения корректного значения аргументаdwCount следует вызывать функцию CGdiObject::GetObject для данного объекта класса битового образа.
SetBitmapBits

DWORD SetBitmapBits(DWORD dwCount, const void* lpBits);

Возвращаемое значение
Нулевое значение в случае возникновения ошибки, и скопированное количество байт в битовом образе в противном случае.
Аргументы

dwCount - определяет число байт, которое необходимо скопировать.
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();

Наиболее часто в качестве макросов обработки сообщений от кнопок используются:

ON_BN_CLICKED - пользователь нажал кнопку;
ON_BN_DOUBLECLICKED - пользователь дважды нажал кнопку.

Объект класса CButton, созданный с использованием ресурса диалога автоматически уничтожается при закрытии диалогового окна. При создании данного объекта пользователем он должен сам удалить его. Если данный объект создавался в куче с использованием оператора new, то при закрытии родительского окна он должен быть уничтожен с использованием оператора delete. Если же он создавался в стеке или был внедрен в объект класса родительского окна диалога, то он уничтожается автоматически. Описание данного класса содержится в файле заголовка afxwin.h.
CButton::GetState

UINT GetState() const;

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

0x0003 - определяет состояние флажков и переключателей. Значение 0 говорит о том, что флажок сброшен, 1 - установлен, а 2 - что кнопка находится в неопределенном состоянии;
0x0004 - определяет выделение кнопки. Ненулевое значение означает, что данная кнопка выделена, то есть пользователь нажал и удерживает не ней левую кнопку мыши;
0x0008 - определяет фокус ввода. Ненулевое значение означает, что данная кнопка имеет фокус ввода.

Описание
Позволяет определить состояние кнопки.
SetCheck

void SetCheck(int nCheck);

Аргументы

nCheck - определяет состояние кнопки. Этот аргумент может принимать одно из следующих значений:
0 - кнопка сброшена;
1 - кнопка установлена;
2 - состояние кнопки не определено. Это значение состояния кнопки может быть установлено только в том случае, когда она имеет стиль BS_3STATE или стиль BS_AUTO3STATE.

Описание
Устанавливает или сбрасывает переключатели или флажки. Эта функция не оказывает никакого действия на простые кнопки.
CCmdUI
Класс CCmdUI используется в функциях обработки сообщения ON_UPDATE_COMMAND_UI в классах, производных от класса CCmdTarget. Когда пользователь раскрывает меню в своем приложении, приложение должно определить состояние каждой его команды, каждая из которых может быть доступной или недоступной. Эта информация предоставляется функциями обработки сообщения ON_UPDATE_COMMAND_UI. Прототипы этих функций и соответствующие им макросы карты сообщений могут быть созданы с использованием мастера ClassWizard. При раскрытии меню приложение ищет и вызывает функции обработки сообщения ON_UPDATE_COMMAND_UI, передавая им в качестве аргумента объект класса CCmdUI. Пользователь вызывает для данного объекта такие функции, как Enable или Check, позволяющие приложению правильно установить состояние для каждой команды меню. На месте команд меню могут выступать кнопки панели инструментов или другие объекты пользовательского интерфейса. При этом все они будут использовать одну и ту же функцию обработки сообщения ON_UPDATE_COMMAND_UI. В таблице П2.3 содержатся сведения о реакции отдельных элементов управления на вызов функций-членов класса CCmdUI.

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

Элемент управления Enable SetCheck SetRadio SetText
Команда меню Делает доступной или недоступной Устанавливает или снимает флажок (v) Устанавливает или снимает переключатель (.) Устанавливает текст элемента управления
Кнопка панели инструментов Делает доступной или недоступной Выделяет, снимает выделение или переводит в неопределенное состояние Работает аналогично функции SetCheck Не используется
Панель строки состояния Делает текст видимым или невидимым Устанавливает выступающую или нормальную рамку Работает аналогично функции SetCheck Устанавливает текст в панели
Обычная кнопка в CDialogBar Делает доступной или недоступной Устанавливает или снимает флажок Работает аналогично функции SetCheck Устанавливает текст в кнопке
Обычный элемент управления в CDialogBar Делает доступной или недоступной Не используется Не используется Устанавливает текст окна
Класс CCmdUI не имеет базового класса. Описание данного класса содержится в файле заголовка afxwin.h.
ContinueRouting

void ContinueRouting();

Описание
Данная функция сообщает процедуре обработки сообщений, что обработка данного сообщения не завершена в данной функции и требуется найти обработчик данного сообщения, который завершит процедуру его обработки. ФункциюContinueRouting необходимо вызывать в функциях обработки сообщения ON_COMMAND_EX в том случае, когда они возвращают значение FALSE.
Enable

virtual void Enable(BOOL bOn = TRUE);

Аргументы

bOn - если данный аргумент имеет значение TRUE, то соответствующий элемент управления становится доступным. В противном случае он становится недоступным.

Описание
Данная функция позволяет делать доступным или недоступным элемент управления.
SetCheck

virtual void SetCheck(int nCheck = 1);

Аргументы

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

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

virtual void SetText(LPCTSTR lpszText);

Аргументы

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

Описание
Данная функция вызывается приложением для вывода текста в пользовательском элементе управления.
CControlBar
Класс CControlBar является базовым для таких классов, как CStatusBar, CToolBar, CDialogBar, CReBar и COleResizeBar. Панель управления представляет собой окно, обычно выровненное по левой или правой стороне основного окна приложения. Оно может содержать дочерние окна, которые могут быть как элементами управления, имеющими свой дескриптор окна HWND, то есть обычными окнами Windows способными посылать и принимать сообщения, или другими элементами управления не являющимися окнами и управляемыми функциями класса приложения или класса главного окна приложения. Примером элементов управления, имеющих свой дескриптор окна, могут служить просмотровые окна списка и окна редактора. Примером элементов управления не имеющих своего дескриптора окна являются панели строки состояния или кнопки панели инструментов. Окна панели управления обычно являются дочерними окнами главного окна приложения и используются наравне с рабочей областью однооконного приложения или окнами документов многооконного приложения. Для своего позиционирования объект класса CControlBar использует информацию о размерах рабочей области родительского окна. После этого он информирует родительское окно о том, сколько места осталось в его рабочей области. Описание данного класса содержится в файле заголовка afxext.h.
EnableDocking

void EnableDocking(DWORD dwStyle);

Аргументы

dwStyle - определяет возможность фиксации панели управления на одной из сторон окна и определяет стороны, на которых панель управления может фиксироваться. Может быть комбинацией следующих флагов:
       CBRS_ALIGN_TOP - разрешает фиксацию на верхней стороне рабочей области окна;
       CBRS_ALIGN_BOTTOM - разрешает фиксацию на нижней стороне рабочей области окна;
       CBRS_ALIGN_LEFT - разрешает фиксацию на левой стороне рабочей области окна;
       CBRS_ALIGN_RIGHT - разрешает фиксацию на правой стороне рабочей области окна;
       CBRS_ALIGN_ANY - разрешает фиксацию на любой стороне рабочей области окна;
       CBRS_FLOAT_MULTI - разрешает использование нескольких плавающих панелей управления в одном окне.
Если данный аргумент равен 0 (то есть не указан ни один флаг) панель управления не фиксируется.

Описание
Использование данной функции разрешает фиксацию панелей управления. Указанные положения фиксации должны соответствовать положениям фиксации, определенным в главном окне приложения, в противном случае панель управления не может быть зафиксирована в данном окне.
CDateTimeCtrl
Класс CDateTimeCtrl является классом обработки сообщений элемента управления Date Time Picker (Выбор даты и времени), используемого для ввода и вывода информации о дате и времени. Этот элемент управления имеет вид раскрывающегося списка, в текстовое поле которого, в зависимости от установленного стиля, выводится информация о дате или о времени. Эта информация структурирована и при редактировании отдельного ее компонента (дней, минут, секунд и т. д.) он выделяется синим прямоугольником. Для перемещения между отдельными компонентами может использоваться мышь или клавиатура. При нажатии на кнопку раскрывающегося списка появляется элемент управления Month Calender Control (Календарь на месяц), позволяющий выбирать новую дату для отображения в рассматриваемом элементе управления. При создании элемента управления для работы с датой и временем могут быть заданы следующие стили:

DTS_APPCANPARSE - позволяет пользователю нажать клавишу и произвести редактирование в рабочей области окна;
DTS_LONGDATEFORMAT - использует длинный формат представления даты;
DTS_RIGHTALIGN - приводит к выравниванию информации по правому краю в пределах элемента управления. По умолчанию используется выравнивание по левому краю;
DTS_SHORTDATEFORMAT - использует короткий формат представления даты;
DTS_TIMEFORMAT - выводит информацию о времени;
DTS_UPDOWN - помещает справа от данного элемента управления счетчик, который может использоваться для корректировки информации о дате и времени.

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

DTN_CLOSEUP - пользователь закрывает раскрывающийся месячный календарь;
DTN_DATETIMECHANGE - изменение информации в элементе управления;
DTN_DROPDOWN - пользователь открывает раскрывающийся месячный календарь;
DTN_USERSTRING - пользователь завершил редактирование строки в элементе управления;
DTN_KILLFOCUS - элемент управления потерял фокус ввода;
DTN_SETFOCUS - элемент управления получил фокус ввода.

Описание данного класса содержится в файле заголовка afxdtctl.h.
GetTime

BOOL GetTime(COleDateTime& timeDest) const;
DWORD GetTime(CTime& timeDest) const;
DWORD GetTime(LPSYSTEMTIME pTimeDest) const;

Возвращаемое значение
В первой версии данной функции ненулевое значение возвращается в том случае, если информация о времени успешно записана в объект класса COleDateTime. В противном случае возвращается нулевое значение. Во второй и третьей версиях возвращается двойное слово, значение которого совпадает со значением переменной dwFlag структуры NMDATETIMECHANGE.
Аргументы

timeDest - в первой версии данной функции содержит ссылку на объект класса COleDateTime, в который будет записана информация о системной дате и времени. Во второй версии данной функции этот аргумент содержит ссылку на объект классаCTime, в который будет записана информация о системной дате и времени.
PTimeDest - указатель на объект структуры SYSTEMTIME, в который будет записана информация о системной дате и времени. Не может принимать нулевого значения.

Описание
Используется для сохранения информации о дате и времени, содержащейся в соответствующем элементе управления, в объекте структуры SYSTEMTIME. Эта функция выполняет те же действия, что и сообщение Win32 DTM_GETSYSTEMTIME. При реализации в библиотеке MFC функция GetTime может сохранять информацию не только в объекте структуры SYSTEMTIME, но и в объектах классов COleDateTime и CTime. Вторая и третья версии данной функции возвращают двойное слово, информирующее о том, содержалась ли в соответствующем элементе управления информация о дате и времени. Возвращаемое значение соответствует значению переменной dwFlags структуры NMDATETIMECHANGE. Если возвращается значениеGDT_NONE, то элемент управления не содержит информации о дате и использует стиль DTS_SHOWNONE. Если возвращается значение GDT_VALID, то системное время благополучно сохранено в соответствующем объекте.
SetFormat

BOOL SetFormat(LPCTSTR pstrFormat);

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

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

Описание
Устанавливает формат вывода информации в элементе управления. Эта функция выполняет те же действия, что и сообщение Win32 DTM_SETFORMAT.
SetTime

BOOL SetTime(const COleDateTime& timeNew);
BOOL SetTime(const CTime* pTimeNew);
BOOL SetTime(LPSYSTEMTIME pTimeNew = NULL);

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

timeNew - ссылка на объект класса COleDateTime, содержащий время, которое необходимо установить в элементе управления.
pTimeNew - во второй версии данной функции содержит указатель на объект класса CTime, содержащий время, которое необходимо установить в элементе управления. В третьей версии данной функции этот аргумент содержит указатель на объект структуры SYSTEMTIME, содержащий время, которое необходимо установить в элементе управления.

Описание
Устанавливает дату и время в соответствующем элементе управления. Эта функция выполняет те же действия, что и сообщение Win32 DTM_SETSYSTEMTIME. При реализации в библиотеке MFC функция GetTime может получать информацию не только из объекта структуры SYSTEMTIME, но и из объектов классов COleDateTime и CTime.
CDC
Класс CDC представляет собой класс контекста устройств. Объект класса CDC содержит методы для работы с контекстом таких устройств, как дисплей или принтер, а также позволяет работать с контекстом дисплея, связанным с рабочей областью окна. Все операции вывода информации на дисплей и принтер должны производиться только с использованием методов, предоставляемых объектом класса CDC. Данный класс содержит методы для работы с контекстом устройств, осуществляющих вывод графической информации, методы выбора объектов интерфейса графических устройств (GDI), учитывающие тип выбираемых объектов, и методы для работы с цветами и палитрами. Он также обеспечивает методы для получения и установки атрибутов отображения графической информации, масштабирования, работы с областями просмотра, работы с расширениями окон, преобразования координат, работы с областями, отсечения неотображаемых фрагментов, рисования линий, простых форм, эллипсов и многоугольников. Данный класс содержит, также методы позволяющие выводить текст, работать со шрифтами, использовать управляющие последовательности принтера, прокрутку окон и проигрывание метафайлов. Чтобы использовать объект класса CDC, необходимо его создать, а затем использовать его функции, соответствующие функциям Windows, предназначенным для работы с контекстами устройств. В Windows 95 экранные координаты хранятся в 16-разрядных целых числах со знаком. Поэтому все величины типа int, используемые в качестве аргументов функций класса CDC должны находиться в диапазоне от -32768 до 32767. Для определенных целей в библиотеке MFC предусмотрены классы, производные от класса CDC. КлассCPaintDC включает в себя вызовы функций BeginPaint и EndPaint. Класс CClientDC позволяет работать с контекстом дисплея, связанным с рабочей областью окна. Класс CWindowDC позволяет работать с контекстом дисплея, связанным со всем окном, включая его рамку и элементы управления. Класс CMetaFileDC связывает контекст устройства с метафайлом. Класс CDC содержит две переменные для хранения контекста устройства: m_hDC и m_hAttribDC, которые, при создании объекта класса CDCотносятся к одному и тому же устройству. Класс CDC направляет все запросы на вывод информации с использованием GDI к переменной m_hDC, а большинство обращений к атрибутам GDI использует переменную m_hAttribDC. (Примером обращения к атрибутам может служить функция GetTextColor, а функция SetTextColor может служить примером запроса на вывод информации). Например, приложение использует оба эти контекста устройства при работе с объектом класса CMetaFileDC, записывающего выходную информацию в метафайл, используя при этом атрибуты, считанные из контекста физического устройства. Данный режим используется приложением в режиме Предварительного просмотра печати. Может возникнуть случай, когда пользователю потребуется использовать одну и ту же информацию, полученную из обоих контекстов устройств. Для этого используются пары функций, приведенные в таблице П2.4:

Таблица П2.4. Функции, выполняющие аналогичные действия с различными контекстами устройств 

Использует m_hAttribDC Использует m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

 

Описание данного класса содержится в файле заголовка afxwin.h.
BitBlt

BOOL BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop);

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

x - определяет горизонтальную координату верхнего левого угла прямоугольника в который будет копироваться битовый образ (области вывода).
y - определяет вертикальную координату верхнего левого угла прямоугольника в который будет копироваться битовый образ.
nWidth - определяет ширину (в логических единицах) прямоугольника в который будет копироваться битовый образ.
nHeight - определяет высоту (в логических единицах) прямоугольника в который будет копироваться битовый образ.
pSrcDC - указатель на объект класса CDC, определяющий контекст устройства из которого производится копирование битового образа. Если значение аргумента dwRop определяет растровую операцию для которой не требуется источника, этот аргумент должен иметь значение NULL.
xSrc - определяет горизонтальную координату верхнего левого угла прямоугольника из которого будет копироваться битовый образ.
ySrc - определяет вертикальную координату верхнего левого угла прямоугольника из которого будет копироваться битовый образ.
dwRop - определяет растровую операцию, которую необходимо выполнить. Коды растровых операций определяют каким образом GDI должен комбинировать цвета при выполнении операции, включающей в себя текущую кисть, возможно, исходный битовый образ и результирующий битовый образ. Данный аргумент может принимать следующие значения:
        BLACKNESS - закрашивает всю область вывода в черный цвет;
        DSTINVERT - инвертирует битовый образ, расположенный в области вывода;
        MERGECOPY - комбинирует образец и исходный битовый образ с использованием логического оператора И;
        MERGEPAINT - комбинирует инвертированный битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИЛИ;
        NOTSRCCOPY - копирует инвертированный исходный битовый образ в область вывода;
        NOTSRCERASE - инвертирует результат логического оператора ИЛИ между инвертированным битовым образом, расположенным в области вывода, и исходным битовым образом;
        PATCOPY - заполняет область вывода с использованием образца;
        PATINVERT - комбинирует битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИСКЛЮЧАЮЩЕГО ИЛИ;
        PATPAINT - комбинирует образец и инвертированный исходный битовый образ с использованием логического оператора ИЛИ. Результат этой операции комбинируется с битовым образом, расположенным в области вывода, с использованием логического оператора ИЛИ;
        SRCAND - комбинирует элементы изображения битового образа, расположенного в области вывода, и исходного битового образа с использованием логического оператора И;
        SRCCOPY - копирует исходный битовый образ в область вывода;
        SRCERASE - инвертирует битовый образ, расположенный в области вывода, и комбинирует результат с исходным битовым образом с использованием логического оператора И;
        SRCINVERT - комбинирует битовый образ, расположенный в области вывода, и исходный битовый образ с использованием логического оператора ИСКЛЮЧАЮЩЕГО ИЛИ;
        SRCPAINT - комбинирует элементы изображения битового образа, расположенного в области вывода, и исходного битового образа с использованием логического оператора ИЛИ;
        WHITENESS - закрашивает всю область вывода в белый цвет.

Описание
Копирует битовый образ из исходного контекста устройства в текущий контекст устройства. Приложение может выравнивать окна или их рабочие области по границе байтов для гарантии того, что функция BitBlt будет работать с прямоугольниками, выровненными по границам байт. (Для этого необходимо установить флаги CS_BYTEALIGNWINDOW или CS_BYTEALIGNCLIENT при регистрации класса окна.) Работа функции BitBlt с прямоугольниками, выровненными по границам байт, происходит намного быстрее, чем с прямоугольниками, не выровненными по границам байт. При необходимости задания стилей класса, обеспечивающих работу с прямоугольниками, выровненными по границам байт, в пользовательском контексте устройства, следует самостоятельно зарегистрировать класс окна, не полагаясь в этом на библиотеку MFC. Для этого используется глобальная функция AfxRegisterClass. Интерфейс графических устройств Windows преобразует аргументы nWidth и nHeight,используя контекст устройства в который производится копирование битового образа. Если метрики устройств не совпадают, GDI вызывает функцию Windows StretchBlt для сжатия или растяжения исходного битового образа. Если битовый образ в области вывода, исходный битовый образ и образец имеют различный формат цвета, функция BitBlt преобразует форматы исходного битового образа и образца к формату устройства вывода. При преобразовании используются как фоновый, так и основной битовые образы. При преобразовании монохромного битового образа в цветной функция BitBlt присваивает белому биту (1) цвет фона, а черному биту (0) основной цвет. При этом используются основной цвет (Foreground) и цвет фона (Background). При преобразовании цветного битового образа в монохромный функция BitBlt преобразует элементы изображения, имеющие цвет фона, в белые, а все остальные - в черные элементы изображения. Не все устройства могут работать с функцией BitBlt. Чтобы проверить возможность работы конкретного устройства с функцией BitBlt вызовите функцию GetDeviceCaps с аргументом RASTERCAPS.
CreateCompatibleDC

virtual BOOL CreateCompatibleDC(CDC* pDC);

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

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

Описание
Создает контекст устройства памяти, совместимый с устройством, определяемым аргументом pDC. Контекст устройства памяти представляет собой блок памяти, соответствующий поверхности экрана. Он может использоваться для создания в памяти изображений перед копированием их на совместимое устройство. При создании контекста устройства памяти GDI автоматически выбирает в него монохромный битовый образ размером 1х1 элемент изображения. Функции вывода информации интерфейса графических устройств могут работать с контекстом устройства памяти только в том случае, если в него был выбран объект класса битового образа. Эта функция позволяет создавать совместимые контексты устройств только для устройств, обеспечивающих возможность вывода растровых изображений. Способ передачи информации битовыми блоками описан при рассмотрении функции CDC::BitBlt. Для определения того, способно ли конкретное устройство выводить растровые изображения необходимо вызвать функцию CDC::GetDeviceCaps с аргументом RC_BITBLT.