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


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

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

Субтрактивные цветовые модели - Статья.

Особенности сотовой связи - Статья.

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

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

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

Поделиться:

1    2    3    4    5    6    7    8    9    10   

GetDocString

virtual BOOL GetDocString(CString& rString, enum DocStringIndex index) const;

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

rString - ссылка на объект класса CString в который будет помещена искомая строка после окончания работы функции.
index - индекс текстового поля, которое следует извлечь из строкового ресурса, связанного с данным объектом класса шаблона документа. Этот аргумент может принимать одно из следующих значений:
CDocTemplate::windowTitle - текст, который появляется в заголовке окна приложения (например, "Microsoft Excel"). Данное поле используется только в однооконном приложении;
CDocTemplate::docName - корневое имя для имени документа по умолчанию (например, "Sheet"). Это имя плюс порядковый номер, составляют имя нового документа данного типа при его создании в результате выбора команды меню File|New (Файл|Создать) (например, "Sheet1" или "Sheet2"). Если это поле пусто, то в качестве корневого имени используется "Untitled";
CDocTemplate::fileNewName - имя данного типа документа. Если данное приложение использует более одного типа документа, то это имя выводится в диалоговом окне New (например, "Worksheet"). Если это имя не задано, то новый документ данного типа не может быть создан, если приложение использует несколько типов документов;
CDocTemplate::filterName - описание типа документа и его расширения, используемого для поиска документов данного типа. Эта строка отображается в раскрывающемся списке Тип Файлов диалоговых окон Open (Открыть) и Save As (Сохранить как) (например, "Worksheets (*.xls)"). Если это текстовое поле пусто, то файлы данного типа отображаются только в режиме просмотра всех файлов директория;
CDocTemplate::filterExt - расширение, используемое документами данного типа (например, ".xls"). Если это текстовое поле пусто, то данный тип документа не имеет расширения, подставляемого по умолчанию к его имени;
CDocTemplate::regFileTypeId - идентификатор типа документа, сохраняемый в базе данных реестра, поддерживаемого Windows. Эта строка используется исключительно для системных целей (например, "ExcelWorksheet"). Если это текстовое поле пусто, то данный тип документа не может быть зарегистрирован в диспетчере файлов Windows;
CDocTemplate::regFileTypeName - имя типа документа, хранимое в базе данных реестра, поддерживаемого Windows. Эта строка может отображаться в диалоговых окнах приложений, имеющих доступ к базе данных реестра (например, "Microsoft Excel Worksheet").

Описание
Данная функция вызывается для получения текстовых строк, описывающих тип документа. Строка, содержащая эти строки в виде своих полей, хранится в объекте класса шаблона документа и передается туда из строкового ресурса, хранящегося в файле ресурсов данного приложения. Приложение вызывает данную функцию, когда ему необходимо получить текстовую информацию, используемую им для организации интерфейса пользователя. Если для файлов, хранящих документы данного типа, определено особое расширение, то приложение вызывает эту функцию для включения соответствующей записи в базу данных реестра Windows, что позволяет открывать данные документы средствами диспетчера файлов Windows. Эта функция может вызываться только в классах, производных от класса CDocTemplate.
CDocument
Класс CDocument обеспечивает основные функциональные возможности создаваемого пользователем класса документа. Документ представляет собой модуль данных, используемых пользователем в своем приложении, и обычно открывается командой File|Open (Файл|Открыть) и сохраняется командой File|Save (Файл|Сохранить). Класс CDocument содержит методы, обеспечивающие создание документа, его загрузку и сохранение. Приложение может поддерживать больше чем один тип документа. Например, оно может работать как с электронными таблицами, так и с текстовыми документами. Каждый тип документа должен быть включен в один из шаблонов документа. Шаблон документа определяет ресурсы (например, меню, значок или таблица акселератора) используемые данным типом документа. Каждый документ содержит указатель на связанный объект CDocTemplate. Пользователи взаимодействуют с документом через связанный с ним объект класса CView. Класс представления выполняет отображение документа в окне и преобразует вводимую пользователем информацию в соответствующие изменения в документе. Один класс документа может быть связан с несколькими классами представления. Когда пользователь открывает окно документа, приложение создает объект соответствующего класса представления и присоединяет его к документу. Шаблон документа определяет класс представления и класс окна, соответствующие данному типу документа. Классы документов включены в стандартную процедуру обработки сообщений в приложении и, следовательно, могут получать команды от стандартных компонентов интерфейса пользователя, например, от команды меню File|Save (Файл|Сохранить). Документ получает команды, посланные активным классом представления. Если документ не обрабатывает данную команду, то она передается шаблону документа для дальнейшей обработки. Когда в документ вносятся изменения, каждый из связанных с ним объектов класса представления должен отразить эти изменения. Класс CDocument имеет функцию-член класса UpdateAllViews, позволяющую приложению сообщить всем связанным с данным документом объектам класса представления о том, что в документ внесены изменения и данные объекты должны внести соответствующие изменения в выводимую ими информацию. Перед закрытием документа приложение запрашивает пользователя о необходимости сохранить внесенные в него изменения. Чтобы создать собственный класс документа:

1. Создайте класс, производный от класса CDocument.
2. Включите в него переменные для хранения пользовательских данных.
3. Создайте методы для чтения и внесения изменений в эти данные. В основном этими методами будут пользоваться связанные с документом объекты класса представления.
4. Перегрузите функцию CObject::Serialize, позволяющую читать и записывать документы на диск.

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

virtual CFile* GetFile(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError);

Возвращаемое значение
Указатель на объект класса CFile.
Аргументы

lpszFileName - строка, содержащая путь к открываемому файлу. Путь может быть как относительным, так и абсолютным.
nOpenFlags - флаги, определяющие режим доступа к файлу, определяющие действия, которые необходимо предпринять при открытии файла. Эти флаги могут принимать те же самые значения, что и соответствующие флаги конструктора класса CFile и они, также, объединяются оператором побитового ИЛИ (|).Необходимо указать как минимум один флаг доступа и один флаг разделения ресурсов. Флаги modeCreate и modeNoInherit являются не обязательными.
pError - указатель на существующий объект класса исключений файла, в который будут помещены результаты открытия файла.

Описание
Данная функция используется для получения указателя на объект класса CFile.
GetPathName

const CString& GetPathName() const;

Возвращаемое значение
Полный путь к файлу документа. Эта строка является пустой в том случае, если документ еще не был сохранен или несвязан с дисковым файлом.
Описание
Данная функция позволяет получить полный путь к файлу документа на диске.
OnNewDocument

virtual BOOL OnNewDocument();

Возвращаемое значение
Отличное от нуля, если документ был успешно инициализирован, в противном случае - 0.
Описание
Вызывается приложением как часть обработки команды меню File|New (Файл|Создать). По умолчанию данная функция вызывает функцию DeleteContents, гарантирующую, что данный документ пуст, и отмечает данный документ, как пустой. В данную функцию следует помещать инициализацию всех структур данных нового документа, причем все операторы инициализации должны располагаться после вызова функции базового класса. Если данная функция вызывается в однооконном приложении, то она уничтожает содержимое существующего документа. В случае многооконного приложения при выборе команды File|New (Файл|Создать) происходит создание нового документа и уже для него вызывается данная функция. Поскольку в однооконном приложении класс документа создается с помощью конструктора при инициализации приложения, а новые документы создаются путем уничтожения текущего документа при запуске функции OnNewDocument, то все процедуры инициализации документа в однооконном приложении должны располагаться в данной функции, а не в конструкторе.
ReleaseFile

virtual void ReleaseFile(CFile* pFile, BOOL bAbort);

Аргументы

pFile - указатель на объект класса CFile, который необходимо освободить.
bAbort - определяет функцию, которая будет использована при освобождении файла. Если данный аргумент имеет значение FALSE, то для освобождения файла используется функция CFile::Close, в противном случае используется функцияCFile::Abort.

Описание
Данная функция вызывается приложением для освобождения файла, делая его доступным для других приложений. Если аргумент bAbort имеет значение TRUE, то функция ReleaseFile вызывает функцию CFile::Abort и файл освобождается. Функция CFile::Abort не вызывает исключения. Если аргумент bAbort имеет значение FALSE, то функция ReleaseFile вызывает функцию CFile::Close и файл освобождается. Данная функция перегружается в том случае, если пользователь должен выполнить определенные действия перед закрытием файла.
SetModifiedFlag

void SetModifiedFlag(BOOL bModified = TRUE);

Аргументы

bModified - флаг, указывающий, вносились ли в документ изменения.

Описание
Данная функция вызывается после внесения любых изменений в документ. Вызов данной функции после внесения любого изменения гарантирует, что при закрытии данного документа приложение выведет диалоговое окно с запросом о том, нужно ли сохранять внесенные в документ изменения. Обычно в качестве аргумента данной функции используется установленное по умолчанию значение TRUE. Чтобы пометить данный документ как чистый (неизмененный), вызовите данную функцию с аргументом bModified, имеющим значение FALSE.
UpdateAllViews

void UpdateAllViews(CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL);

Аргументы

pSender - указатель на объект класса представления, вносящий изменения в данный документ, или NULL, если необходимо внести изменения во все объекты класса представления, связанные с данным документом.
lHint - содержит информацию о вносимых изменениях.
pHint - указатель на объект, содержащий информацию о вносимых изменениях.

Описание
Данная функция вызывается после внесения изменений в документ. Ее вызов должен располагаться после вызова функции SetModifiedFlag. Функция UpdateAllViews извещает все объекты класса представления, связанные с данным документом, кроме объекта класса представления на который указывает аргумент pSender, о том, что в данный объект класса документа были внесены изменения. Обычно данная функция вызывается после того, как пользователь через один из объектов класса представления внес изменения в данный документ. Функция SetModifiedFlag вызывает функцию CView::OnUpdate для каждого объекта класса представления, кроме объекта, через который было внесено изменение. При этом каждому из объектов класса представления передаются значения аргументов pHint и lHint. Эти аргументы используются для передачи информации объектам класса представления о характере изменений, внесенных в документ. Эта информация может передаваться в аргументе lHint и/или для хранения этой информации может быть создан объект класса, производного от класса CObject, указатель на который должен передаваться в аргументе pHint. Перегрузка функции CView::OnUpdate в пользовательском классе представления позволяет оптимизировать процедуру обновления содержимого окна на основе переданной данной функции информации.
CEdit
Объект класса CEdit обеспечивает функционирование элемента управления текстового поля Windows. Текстовое поле Windows представляет собой прямоугольное дочернее окно, в которое пользователь может вводить текст. Данный элемент управления может создаваться в шаблоне диалога или непосредственно в программе пользователя. В обоих случаях сначала вызывается конструктор класса CEdit, создающий объект данного класса, а затем вызывается функция Create, создающая текстовое поле Windows и связывающая его с объектом класса CEdit.
Объект класса, производного от класса CEdit может быть создан за один шаг, если в его конструкторе будет вызвана функция Create. Объект класса CEdit наследует многие возможности объекта класса CWnd. Чтобы записать текст в объект классаCedit, используется функция CWnd::SetWindowText, а чтобы считать его оттуда используется функция CWnd::GetWindowText. Эти функции позволяют записать или считать весь текст, содержащийся в данном элементе управления даже в том случае, когда он является многострочным. В том случае, если данный элемент управления является многострочным, в нем могут использоваться следующие функции для работы с частью содержащегося в нем текста: CEdit::GetLine, CEdit::SetSel,CEdit::GetSel и CEdit::ReplaceSel.
Чтобы обработать сообщение, посылаемое текстовым полем своему родительскому окну (обычно это объект класса, производного от CDialog), добавьте соответствующий макрос в карту сообщений и создайте функцию для обработки данного сообщения. Макрос карты сообщений для данного типа сообщений имеет следующий формат:

ON_Notification(id, memberFxn)

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

afx_msg void memberFxn();

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

ON_EN_CHANGE - пользователь произвел действие, которое может привести к изменению текста, содержащегося в текстовом поле. В отличие от сообщения EN_UPDATE данное сообщение посылается после того, как Windows произведет обновление экрана;
ON_EN_ERRSPACE - для данного текстового поля не может быть выделен необходимый для него объем памяти;
ON_EN_HSCROLL - пользователь воспользовался горизонтальной полосой прокрутки данного элемента управления. Сообщение посылается родительскому окну до обновления экрана;
ON_EN_KILLFOCUS - данное текстовое поле потеряло фокус ввода;
ON_EN_MAXTEXT - текущая вставка привела к превышению определенного в данном объекте максимального числа символов, что привело к ее урезанию. Данное сообщение посылается также в том случае, если текстовое поле не имеет стиляES_AUTOHSCROLL, а количество символов в текущей строке превышает ширину текстового поля. Другим случаем, когда посылается данное сообщение, является случай, когда текстовое поле не имеет стиля ES_AUTOVSCROLL, а количество строк в нем превышает высоту текстового поля, или же текстовое поле не имеет стиля ES_AUTOHSCROLL, а количество символов в текущей строке превышает ширину текстового поля;
ON_EN_SETFOCUS - данное текстовое поле получило фокус ввода;
ON_EN_UPDATE - в текстовом поле будет выводиться измененный текст. Посылается после того, как элемент управления отформатирует текст, но до того, как этот текст будет выведен в текстовое поле, что позволяет изменить размеры текстового поля в случае необходимости;
ON_EN_VSCROLL - пользователь воспользовался вертикальной полосой прокрутки данного элемента.

При создании объекта класса CEdit в диалоговом окне этот объект автоматически уничтожается при закрытии диалогового окна. То же самое происходит и в том случае, когда объект класса CEdit создается в шаблоне диалога.
Если объекта класса CEdit создается в окне, то от пользователя может потребоваться его уничтожить. Если же объект класса CEdit создается в стеке, то он уничтожается автоматически. При создании объекта класса CEdit в куче с использованием оператора new его необходимо уничтожить после завершения работы пользователя с элементом управления Windows с использованием оператора delete. Если в объект класса, производного от CEdit, была распределена какая-либо память, то необходимо перегрузить деструктор данного класса таким образом, чтобы он освобождал эту память. Описание данного класса содержится в файле заголовка afxwin.h.
CharFromPos

int CharFromPos(CPoint pt) const;

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

pt - координаты точки в рабочей области элемента управления, связанного с данным объектом класса CEdit.

Описание
Данная функция позволяет получить индекс ближайшего к данной точке символа, и индекс строки, в которой находится данный символ. Первая строка и первый символ имеют нулевой индекс. Данная функция может использоваться только в программах, работающих под управлением Windows 95 и Windows NT 4.0.
Clear

void Clear();

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

void Cut();

Описание
Данная функция вызывается для уничтожения текущего выделения в текстовом поле и помещения его в буфер обмена в формате CF_TEXT. Эта операция может быть отменена функцией Undo. Если выделенный текст не нужно помещать в буфер обмена, используйте функцию Clear.
LineLength

int LineLength(int nLine = -1) const;

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

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

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

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

Аргументы

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

Описание
Данная функция заменяет выделенный фрагмент в текстовом поле строкой, на которую указывает аргумент lpszNewText. При возникновении необходимости замены всего текста в текстовом поле используйте функцию CWnd::SetWindowText. Если в текстовом поле отсутствует выделение, текст вставляется в текущую позицию текстового курсора.
SetSel

void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE); void SetSel(int nStartChar, int nEndChar, BOOL bNoScrol = FALSE);

Аргументы

dwSelection - в младшем слове содержит начальную позицию выделения, а в старшем слове - конечную позицию выделения. Если младшее слово содержит нулевое значений, а старшее слово - значение -1, выделяется весь текст в текстовом поле. Если младшее слово содержит значение -1, удаляется любое текущее выделение.
bNoScroll - определяет необходимость прокрутки области вывода, чтобы показать текстовый курсор. Если данный аргумент имеет значение FALSE, прокрутка осуществляется, если же он имеет значение TRUE - прокрутка отсутствует.
nStartChar - определяет начальную позицию выделения. Если данный аргумент имеет значение 0, а аргумент nEndChar имеет значение -1, то выделяется весь текст в текстовом поле. Если данный аргумент имеет значение -1, удаляется любое текущее выделение.
nEndChar - определяет конечную позицию выделения.

Описание
Данная функция используется для выделения текстового фрагмента в текстовом поле.
CEditView
Объект класса CEditView, подобно объекту класса CEdit, обеспечивает функционирование элемента управления текстового поля Windows, и позволяет создать простейший текстовый редактор. Класс CEditView позволяет использовать следующие дополнительные возможности:

печать документа;
поиск и замена.

Поскольку класс CEditView является производным от класса CView, объекты данного класса могут работать с документами и использоваться в шаблонах документов. Для текста, содержащегося в данном объекте элемента управления выделяется собственная область глобальной памяти. Количество данных объектов не ограничено. Использование объектов класса CEditView позволяет создавать простейшие оконные редакторы, имеющие перечисленные выше свойства. Объект класса CEditViewможет занимать всю рабочую область окна. Чтобы дополнить данный редактор пользовательскими свойствами, необходимо создать пользовательский класс, производный от класса CEditView и добавить в него соответствующие функции. По умолчанию класс CEditView обрабатывает следующие сообщения: ID_EDIT_SELECT_ALL, ID_EDIT_FIND, ID_EDIT_REPLACE, ID_EDIT_REPEAT и ID_FILE_PRINT. На объекты класса CEditView (или на объекты классов, производных от класса CEditView) накладываются следующие ограничения:

объект класса CEditView не обладает свойствами WYSIWYG (что видишь, то и получишь). В тех случаях, когда требования соответствия изображения на экране печатаемой копии приводят к снижению качества изображения на экране, объект классаCEditView старается повысить качество изображения на экране за счет потери соответствия с печатаемой копией;
объект класса CEditView использует только один шрифт для вывода всей информации. При этом не предусматривается никакого специального форматирования текста. Эти возможности реализованы в классе CrichEditView;
объем текста, выводимого объектом класса CEditView ограничено. Эти ограничения совпадают с ограничениями, наложенными на объект класса CEdit.

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

BOOL FindText(LPCTSTR lpszFind, BOOL bNext = TRUE, BOOL bCase = TRUE);

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

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

Описание
Функция FindText производит поиск указанного текста в текстовом буфере объекта класса CEditView. Поиск текста, содержащегося в аргументе lpszFind, производится начиная с текущей позиции текстового курсора в направлении, определяемом аргументом bNext. Если аргумент bCase имеет значение TRUE, то поиск производится с учетом регистра символов. Если текст найден, то он выделяется и функция возвращает ненулевую величину. В противном случае возвращается нулевая величина.
GetBufferLength

UINT GetBufferLength() const;

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

CEdit& GetEditCtrl() const;

Возвращаемое значение
Ссылка на объект класса CEdit.
Описание
Функция GetEditCtrl позволяет получить ссылку на объект класса текстового поля, используемый в данном объекте класса представления. Поскольку возвращается ссылка на объект класса CEdit, то возвращаемая величина позволяет получить доступ к данному элементу управления путем вызова функций данного класса. Использование объекта класса CEdit может изменить состояние связанного с ним элемента управления Windows. Например, при использовании для установки позиций табуляции функции CEdit::SetTabStops приведет к изменению позиций табуляции как в самом элементе управления, так и к изменению позиций табуляции при его распечатке. Чтобы изменить позиции табуляции только в самом элементе управления следует использовать функцию CEditView::SetTabStops.
OnFindNext

virtual void OnFindNext(LPCTSRT lpszFind, BOOL bNext, BOOL bCase);

Аргументы

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

Описание
Функция OnFindNext производит поиск указанного текста в текстовом буфере объекта класса CEditView. Поиск текста, содержащегося в аргументе lpszFind, производится начиная с текущей позиции текстового курсора в направлении, определяемом аргументом bNext. Если аргумент bCase имеет значение TRUE, то поиск производится с учетом регистра символов. Для поиска строки данная функция вызывает функцию FindText, передавая ей все свои аргументы. По умолчанию если искомый текст не найден, функция OnFindNext вызывает функцию OnTextNotFound.
CEvent
Объект класса CEvent представляет собой объект синхронизации, позволяющий одному потоку послать сообщение другому потоку о наступлении некоторого события. Например, о завершении работы потока или о необходимости получить или передать очередную порцию информации.
Различают два вида объектов класса CEvent: одни из них устанавливаются и сбрасываются вручную, а другие - автоматически. Для ручной установки объекта события используется функция SetEvent, а для ручного сброса - функция ResetEvent. Автоматические объекты данного класса сбрасываются в том случае, если будет освобожден по крайней мере один поток.
При создании объекта события для него может быть задано имя и поток, которому он принадлежит. После создания данного объекта он отмечается функцией SetEvent. После завершения работы с ресурсом его необходимо освободить вызовом функции Unlock.
Другим способом работы с объектом события является создание члена класса, имеющего тип CEvent. При создании объекта контролируемого класса для этой переменной вызывается конструктор класса CEvent, определяющий тип создаваемого объекта, его исходное состояние, имя (если этот объект события будет использоваться в других процессах) и требуемые атрибуты безопасности.
Для получения доступа к объекту, контролируемому переменной типа CEvent, необходимо сначала создать объект класса CSingleLock или CMultiLock. Вызов функции Lock данного объекта обеспечит монопольный доступ к контролируемому ресурсу. Если ресурс в данное время занят, данная функция будет ждать его освобождения в течение указанного промежутка времени. Если ресурс не освободится в течение периода ожидания, данная функция возвратит соответствующее значение. После завершения работы с ресурсом его необходимо освободить вызовом функции Unlock.
Описание данного класса содержится в файле заголовка afxmt.h.
ResetEvent

BOOL ResetEvent();

Возвращаемое значение
Ненулевое, если функция нормально завершила свою работу, и нулевое в противном случае.
Описание
Данная функция переводит объект события в неотмеченное состояние, отмечаемое функцией SetEvent. Неотмеченное состояние события заставляет ждать все потоки, которые хотели бы получить доступ к ресурсу, контролируемому данным объектом события. Эта функция не используется для автоматических объектов событий.
SetEvent

BOOL SetEvent();

Возвращаемое значение
Ненулевое, если функция нормально завершила свою работу, и нулевое в противном случае.
Описание
Данная функция переводит объект события в отмеченное состояние, освобождая все ждущие данного события потоки. Если объект события не является автоматическим, для перевода его в неотмеченное состояние используется функция ResetEvent. В противном случае этот объект будет отмечен до тех пор, пока не будет освобожден любой поток.
CFile
Класс CFile является базовым классом библиотеки MFC для работы с файлами. Он обеспечивает небуферированный двоичный доступ к файлу. Производные от него классы поддерживают текстовые файлы и файлы, расположенные в оперативной памяти. Класс CFile используется совместно с классом CArchive для сохранения объектов классов из библиотеки MFC.
Использование класса CFile в качестве базового класса для всех классов, работающих с файлами, позволяет использовать его интерфейс во всех этих классах. Поэтому, например, работа с файлом, расположенным в памяти, практически не отличается от работы с классом, расположенным на диске.
Класс CFile и производные от него классы используются для обычной работы с диском. Для записи на диск форматированного текста используется класс ofstream и другие подобные классы Microsoft.
Обычно файл на диске автоматически открывается конструктором класса CFile и автоматически закрывается его деструктором. Статические функции данного класса позволяют определять статус файла не открывая его.
Описание данного класса содержится в файле заголовка afx.h.
CFile

CFile();
CFile(int hFile);
CFile(LPCTSTR lpszFileName, UINT nOpenFlags);
throw(CFileException);

Аргументы

hFile - дескриптор уже открытого файла.
lpszFileName - строка, содержащая путь к открываемому файлу. Путь может быть как относительным, так и абсолютным.
nOpenFlags - флаги доступа к файлу. Определяют действия, которые необходимо предпринять при открытии файла. Приведенные ниже флаги могут объединяться оператором побитового ИЛИ (|). Необходимо указать как минимум один флаг доступа и один флаг разделения ресурсов. Флаги modeCreate и modeNoInherit являются не обязательными. В данном аргументе могут быть указаны следующие флаги:
CFile::modeCreate - создается новый файл. Если файл с данным именем уже существовал, то у него устанавливается нулевая длина;
CFile::modeNoTruncate - если файл с данным именем уже существовал, то у него сохраняется прежняя длина. Этот флаг устанавливается совместно с флагом modeCreate. Это позволяет открывать и использовать один и тот же конструктор для создания новых файлов и открытия уже существующих. Этот флаг используется при создании объектов класса CstdioFile;
CFile::modeRead - открывает файл только для чтения;
CFile::modeReadWrite - открывает файл как для чтения, так и для записи;
CFile::modeWrite - открывает файл только для записи;
CFile::modeNoInherit - запрещает дочернему процессу использовать данный файл;
CFile::shareDenyNone - позволяет другому процессу читать и записывать информацию в данный файл. При открытии данного файла возникает ошибка, если он был открыт в режиме совместимости каким-либо другим процессом;
CFile::shareDenyRead - не позволяет другому процессу читать информацию из данного файла. При открытии данного файла возникает ошибка, если он был открыт в режиме совместимости или для чтения каким-либо другим процессом;
CFile::shareDenyWrite - не позволяет другому процессу записывать информацию в данный файл. При открытии данного файла возникает ошибка, если он был открыт в режиме совместимости или для записи каким-либо другим процессом;
CFile::shareExclusive - открывает данный файл в режиме безраздельного пользования, запрещая любому другому процессу читать или записывать информацию в данный файл. При открытии данного файла возникает ошибка, если он был открыт в режиме чтения или записи каким-либо другим процессом, или, даже, тем же самым процессом;
CFile::shareCompat - этот флаг отсутствует в 32-разрядной библиотеке MFC. Он соответствует флагу CFile::shareExclusive в функции CFile::Open;
CFile::typeText - устанавливает текстовый режим обработки файла, в котором предусмотрены специальные процедуры обработки пар символов возврат каретки/перевод строки (используется только в производных классах);
CFile::typeBinary - устанавливает двоичный режим обработки файла (используется только в производных классах).

Описание
Используемый по умолчанию конструктор данного класса (не имеющий аргументов) не открывает файл, а присваивает величине m_hFile значение CFile::hFileNull. Поскольку данный класс не вызывает исключения, нет никакого смысла помещать его в структуры TRY/CATCH. Вместо этого следует использовать функцию Open, непосредственно проверяющую условия возникновения исключений.
Вторая версия конструктора данного класса создает объект класса CFile, соответствующий существующему файлу, открытому операционной системой и идентифицируемому дескриптором файла hFile. При этом не осуществляется никаких проверок режима доступа к файлу и его типа. При уничтожении объекта класса CFile, созданного подобным конструктором файл операционной системы не закрывается. Пользователь может уничтожить его самостоятельно.
Третья версия конструктора данного класса создает объект класса CFile и открывает файл операционной системы, путь, к которому указан в аргументе lpszFileName. Этот конструктор можно рассматривать как объединение первой версии конструктора с функцией Open. В случае возникновения ошибок при открытии файла данный конструктор вызывает исключения. В большинстве случаев это означает возникновение фатальной ошибки, о которой должно быть сообщено пользователю.
Close

virtual void Close(); throw(CFileException);

Описание
Закрывает файл, связанный с объектом данного класса, и делает его недоступным для операций чтения и записи. Если файл не был закрыт до уничтожения объекта данного класса, эта операция производится его деструктором. Если объект классаCFile создавался в куче с использованием оператора new, его необходимо уничтожить после закрытия файла. Функция Close присваивает переменной m_hFile значение CFile::hFileNull.
GetFilePath

virtual CString GetFilePath() const;

Возвращаемое значение
Полный путь к файлу, связанному с данным объектом класса.
Описание
Данная функция позволяет получить полный путь к файлу, связанному с данным объектом класса. Например, для файла c:\windows\write\myfile.wri функция GetFilePath возвратит строку "c:\windows\write\myfile.wri". Чтобы возвратить имя файла с расширением (myfile.wri) используйте функцию GetFileName. Чтобы возвратить только имя файла без расширения (myfile) используйте функцию GetFileTitle.
GetLength

virtual DWORD GetLength() const; throw(CFileException);

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

virtual UINT Read(void* lpBuf, UINT nCount); throw(CFileException);

Возвращаемое значение
Количество байт, записанных в буфер. Для всех классов, производных от класса CFile возвращаемое значение может быть меньше, чем значение аргумента nCount, если достигнут конец файла.
Аргументы

lpBuf - указатель на созданный пользователем буфер, в который будут записаны данные из файла.
nCount - количество байт, которые нужно считать из файла. Для текстовых файлов пара управляющих символов возврат каретки/перевод строки считается за один символ.

Описание
Читает данные из файла, связанного с объектом класса CFile, в буфер.
SeekToBegin

void SeekToBegin(); throw(CFileException);

Описание
Устанавливает текущую позицию на начало файла. Функция SeekToBegin() эквивалентна функции Seek(0L, CFile::begin).
Write

virtual void Write(const void* lpBuf, UINT nCount);
throw(CFileException);

Аргументы

lpBuf - указатель на созданный пользователем буфер, содержащий данные, которые будут записаны в файл.
nCount - количество байт, которые нужно записать в файл. Для текстовых файлов пара управляющих символов возврат каретки/перевод строки считается за один символ.

Описание
Записывает данные из буфера в файл, связанный с объектом класса CFile. В некоторых случаях, включая переполнение диска, функция Write вызывает исключение.
CFont
Объект класса CFont используется для работы со шрифтами, созданными интерфейсом графических устройств Windows (GDI). Прежде, чем использовать объект класса CFont его необходимо создать и связать с ним шрифт Windows с использованием функций CreateFont, CreateFontIndirect, CreatePointFont или CreatePointFontIndirect. После этого можно вызывать функции-члены данного класса для работы со шрифтом.
Использование функций CreatePointFont или CreatePointFontIndirect во многих случаях проще, чем использование функций CreateFont или CreateFontIndirect, поскольку они осуществляют автоматический перевод высоты шрифта, измеренной в пиках, в высоту шрифта, измеренную в логических единицах.
Описание данного класса содержится в файле заголовка afxwin.h.
CFont::CreateFontIndirect

BOOL CreateFontIndirect(const LOGFONT* lpLogFont);

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

lpLogFont - указатель на объект структуры LOGFONT, содержащий параметры логического шрифта.

Описание
Инициализирует объект класса CFont с использованием переменных объекта структуры LOGFONT, на который указывает аргумент lpLogFont. После этого объект данного класса может выбираться в качестве текущего шрифта в контекст устройства. Этот шрифт имеет характеристики, заданные структурой LOGFONT. Для выбора шрифта в контекст устройства используется функция CDC::SelectObject. При этом программа масштабирования шрифтов графического интерфейса пытается найти среди имеющихся физических шрифтов такой шрифт, который бы максимально соответствовал указанному логическому шрифту. Если не удается достичь полного соответствия, то используется ближайший по параметрам шрифт. После завершения работы с объектом класса CFont, созданным функцией CreateFontIndirect его необходимо сначала удалить из контекста устройства, а затем уничтожить объект данного класса.