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


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

Assembler IBM PC Приложения к лабораторной работе № 2 - Статья.

MSDN по русски. Глобальные функции Windows C++ .NET - Статья.

AutoCAD 2000 - Краткий справочник команд - Статья.

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

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

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

Поделиться:

1    2    3    4    5    6    7    8    9    10   

CommandToIndex

int CommandToIndex(UINT nIDFind) const;

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

nIDFind - идентификатор панели, индекс которой требуется получить.

Описание
Позволяет получить индекс индикатора по заданному идентификатору. Первый индикатор имеет нулевой индекс.
Create

BOOL Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR);

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

pParentWnd - указатель на объект класса CWnd окно которого является родительским окном окна строки состояния.
dwStyle - стиль строки состояния. В дополнение к стандартным стилям Windows в данном аргументе могут присутствовать следующие стили:
CBRS_TOP - панель управления расположена над рабочей областью главного окна приложения;
CBRS_BOTTOM - панель управления расположена под рабочей областью главного окна приложения;
CBRS_NOALIGN - панель управления не изменяет своего положения при изменении размеров и положения родительского окна.
nID - идентификатор дочернего окна строки состояния.

Описание
Создает строку состояния (дочернее окно) и связывает его с объектом класса CStatusBar. Кроме того, данная функция задает исходный шрифт и устанавливает высоту строки состояния, заданную по умолчанию.
SetIndicators

BOOL SetIndicators(const UINT* lpIDArray, int nIDCount);

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

lpIDArray - указатель на массив идентификаторов.
nIDCount - размерность массива, на который указывает аргумент lpIDArray.

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

void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth);

Аргументы

nIndex - индекс панели индикатора, для которой устанавливается данный стиль.
nID - новый идентификатор для панели индикатора.
nStyle - новый стиль панели индикатора. Может принимать следующие значения:
SBPS_NOBORDERS - панель не имеет объемной рамки;
SBPS_POPOUT - инвертированная рамка, такая что панель выглядит выступающей;
SBPS_DISABLED - запрещает вывод текста в панель;
SBPS_STRETCH - данная панель растягивается таким образом, чтобы заполнить все свободное место. Этот стиль может иметь только одна панель в строке состояния;
SBPS_NORMAL - панель не растягивается, не имеет рамки и не выступает.
cxWidth - новая ширина панели индикатора.

Описание
Устанавливает для панели индикатора новые идентификатор, стиль и ширину.
SetPaneText

BOOL SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);

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

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

Описание
Выводит в панель индикаторов текст, на который указывает аргумент lpszNewText.
CString
Объект класса CString используется для хранения текстовой строки переменного размера. Функции и операции данного класса во многом аналогичны операторам языка Basic. Использование операций конкатенации и сравнения строк, а также упрощение операций по работе с памятью, существенно облегчают работу с объектом класса CString по сравнению с обычным массивом символов. Для представления символов в объекте класса CString используется тип TCHAR. Если для программы определен символ _UNICODE, то типу TCHAR соответствует тип wchar_t (16-разрядный символ), в противном случае этому типу соответствует тип char (обычный 8-разрядный символ). При использовании кодировки Unicode объекты класса CStringсостоят из 16-разрядных символов. При использовании кодировки Windows они состоят из 8-разрядных символов. Если не определен символ _UNICODE, объект класса CString позволяет использовать многобайтные наборы символов (MBCS известные так же, как DBCS). При этом следует помнить, что объект класса CString при проведении строковых операций рассматривает строки MBCS как набор 8-разрядных символов. Поэтому приложение должно само взять на себя задачу подготовки аргументов для данных операций и правильной интерпретации полученных результатов. Объекты класса CString имеют следующие особенности:

объект класса CString позволяет увеличивать размер хранимой в нем строки для размещения результата операции слияния строк;
объект класса CString следует рассматривать как строку, а не как указатель на нее;
объект класса CString самостоятельно преобразуется к типу const char* и LPCTSTR, что позволяет использовать его в качестве аргументов функций, имеющих данный тип;
оператор явного преобразования типов позволяет получить доступ к содержимому объекта данного класса как к строке символов, имеющей атрибут только для чтения.

По возможности следует избегать создания динамических объектов класса CString. Это поможет сэкономить память, и упростит доступ к данному объекту.
Класс CString позволяет незначительно уменьшить объем используемой оперативной памяти за счет того, что две строки, имеющие одно и то же содержимое, разделяют одну и ту же область памяти. Однако эта копеечная экономия приводит к тому, что в случае непосредственного изменения содержимого буфера, содержащего данную строку (в обход функций библиотеки MFC) изменения будут внесены сразу в обе строки.
Класс CString включает в себя две функции, позволяющие защитить данные от подобных изменений: CString::LockBuffer и CString::UnlockBuffer. При вызове функции LockBuffer создается копия данной строки, а ее счетчик обращений устанавливается в -1, что означает передачу данной копии в безраздельное пользование данному объекту класса CString. В этом режиме никакой другой объект класса CString не может получить доступ к данной строке, а данный объект класса не может получить доступ к другой строке. Этот режим гарантирует, что все изменения, внесенные в данный объект, не приведут к порче информации, хранимой в других объектах. После завершения модификации новой строки вызывается функцияUnlockBuffer, устанавливающая счетчик обращений в 1.
Класс CString не имеет базового класса.
Описание данного класса содержится в файле заголовка afx.h.
Empty

void Empty();

Описание
Очищает объект класса CString и освобождает память в случае необходимости.
Format

void Format(LPCTSTR lpszFormat, ...);
void Format(UINT nFormatID, ...);

Аргументы

lpszFormat - строка форматирования.
nFormatID - идентификатор строкового ресурса, содержащий строку форматирования.

Описание
Данная функция позволяет записать в объект класса CString форматированную строку аналогично тому, как это делает функция sprintf для символьных массивов. В результате выполнения данной функции в объекте класса CString сохраняется форматированная последовательность символов и значений величин. Каждый дополнительный аргумент, если он присутствует, преобразуется и выводится в соответствии со спецификациями формата, содержащимися в аргументе lpszFormat или в строковом ресурсе, определяемом идентификатором nFormatID. Функция аварийно завершит свою работу, если в качестве аргумента функции Format будет указана сама строка. Например, выполнение следующего программного кода приведет к непредсказуемым результатам: CString str = "Some Data";
str.Format("%s%d", str, 345);
Если в качестве дополнительного аргумента передается строка символов, ее необходимо явным образом преобразовать к типу LPCTSTR. Строка форматирования имеет ту же форму и функцию, что и формат аргументов функции printf. В конец записанной строки символов добавляется нулевой символ.
LoadString

BOOL LoadString(UINT nID);
throw(CMemoryException);

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

nID - идентификатор строкового ресурса Windows.

Описание
Считывает строковый ресурс Windows, определяемый аргументом nID, в существующий объект класса CString.
CToolBar
Объекты класса CToolBar представляют собой панели управления, представляющие собой ряд кнопок, на которых помещены битовые образы, между которыми могут находиться разделители. Кнопки панели инструментов могут действовать как обычные кнопки, переключатели или флажки. Обычно объекты класса CToolBar внедряются в объекты оконных классов, производных от класса CFrameWnd или от класса CMDIFrameWnd. В библиотеке MFC версии 4.0 появилась функцияCToolBar::GetToolBarCtrl, позволяющая пользователю получить непосредственный доступ к элементу управления Windows. Непосредственное использование элемента управления Windows позволяет вносить в него изменения и использовать дополнительные возможности данного элемента управления. Функции-члены класса CToolBar обеспечивают достаточно широкие возможности для работы с панелью инструментов, но функция GetToolBarCtrl позволяет использовать дополнительные возможности панелей инструментов в Windows 95. Функция GetToolBarCtrl возвращает ссылку на объект класса CToolBarCtrl. Чтобы создать панель инструментов с помощью редактора ресурсов:

1. Создайте ресурс панели инструментов.
2. Создайте объект класса CToolBar.
3. Вызовите функцию Create (CreateEx) для создания панели инструментов Windows и связывания ее с объектом класса CToolBar.
4. Вызовите функцию LoadToolBar для загрузки ресурса панели инструментов.

Чтобы создать панель инструментов другим способом:

1. Создайте объект класса CToolBar.
2. Вызовите функцию Create (CreateEx) для создания панели инструментов Windows и связывания ее с объектом класса CToolBar.
3. Вызовите функцию LoadBitmap для загрузки битового образа, содержащего значки для кнопок панели инструментов.
4. Вызовите функцию SetButtons для установки стиля кнопок и сопоставьте каждой кнопке соответствующий ее битовый образ.

Все значки для кнопок панели инструментов хранятся в одном битовом образе. Все значки должны иметь одинаковые размеры. По умолчанию каждый значок имеет 16 элементов изображения в ширину и 15 элементов изображения в высоту. Значки должны располагаться в битовом образе без промежутков между ними.
Функция SetButtons получает указатель на массив идентификаторов элементов управления и целочисленную величину, определяющую количество элементов в массиве. Функция сопоставляет каждому идентификатору кнопки сегмент битового образа и назначает каждой кнопке индекс значка, определяющий положение значка кнопки в битовом образе. Если элемент массива имеет значение ID_SEPARATOR, ему не назначается никакого индекса значка.
Порядок значков в битовом образе обычно совпадает с порядком их отображения на экране, но с использованием функции SetButtonInfo порядок вывода значков может быть изменен.
Все кнопки в панели инструментов имеют одинаковый размер. По умолчанию их размер составляет 24х22 элементов изображения. Этот размер определен в документе Windows Interface Guidelines for Software Design. Дополнительное пространство, образовавшееся вследствие разницы размеров кнопки и значка, используется для формирования рамки вокруг значка.
Каждая кнопка имеет один значок. Все изображения на кнопке, отображающие ее состояние (нажата, отжата, недоступна, недоступна и нажата и промежуточное состояние) формируются из одного значка, связанного с кнопкой. Хотя битовый образ может иметь любой цвет, наилучшие результаты достигаются при использовании черного цвета и оттенков серого.
По умолчанию кнопки панели инструментов имитируют простые кнопки. Однако они могут имитировать также и переключатели и флажки. Флажки имеют три состояния: установлен, сброшен и неопределенное. Переключатели имеют только два состояния: установлен и сброшен.
Для установки стиля отдельной кнопки или разделителя без обращения к массиву сначала необходимо вызвать функцию GetButtonStyle, чтобы получить ее текущее состояние, а затем вызвать функцию SetButtonStyle вместо вызова функцииSetButtons. Функцию SetButtonStyle целесообразно использовать при изменении стиля кнопки в процессе работы с приложением.
Если необходимо, чтобы в кнопке появился текст, вызовите функцию GetButtonText, чтобы получить текст, который должен быть выведен в кнопке, а затем вызовите функцию SetButtonText для установки текста.
Чтобы создать флажок в панели инструментов, необходимо использовать стиль TBBS_CHECKBOX или вызвать функцию CCmdUI::SetCheck при обработке сообщения ON_UPDATE_COMMAND_UI. Вызов функции SetCheck превращает обычную кнопку во флажок. Если аргумент функции SetCheck имеет значение 0, то флажок сбрасывается, если он имеет значение 1, то флажок устанавливается, а значение 2 соответствует неопределенному состоянию.
Чтобы создать переключатель, необходимо вызвать функцию CCmdUI::SetRadio при обработке сообщения ON_UPDATE_COMMAND_UI. При передаче функции SetRadio нулевого аргумента переключатель сбрасывается, в противном случае он устанавливается. Чтобы создать группу переключателей, необходимо создать функции обработки сообщения ON_UPDATE_COMMAND_UI для всех кнопок группы.
Описание данного класса содержится в файле заголовка afxext.h.
CreateEx

BOOL CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, CRect rcBorders = CRect(0, 0, 0, 0), UINT nID = AFX_IDW_TOOLBAR);

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

pParentWnd - указатель на родительское окно панели инструментов.
dwCtrlStyle - дополнительные стили для создания внедренного объекта класса CToolBarCtrl. По умолчанию этот аргумент имеет значение TBSTYLE_FLAT.
dwStyle - стили панели инструментов.
rcBorders - объект класса CRect, определяющий ширину рамки окна панели инструментов. По умолчанию этот аргумент имеет значение 0,0,0,0, поэтому окно панели инструментов не имеет рамки.
nID - идентификатор дочернего окна панели инструментов.

Описание
Данная функция создает панель инструментов Windows (дочернее окно) и связывает ее с объектом класса CToolBar. Кроме того, она устанавливает заданное по умолчанию значение высоты панели инструментов. Использование функции CreateExвместо функции Create позволяет устанавливать стили при создании внедренного объекта класса CToolBarCtrl. Например, если аргумент dwCtrlStyle имеет значение TBSTYLE_FLAT|TBSTYLE_TRANSPARENT, то создается панель инструментов в стиле Internet Explorer 4.0.
LoadToolBar

BOOL LoadToolBar(LPCTSTR lpszResourceName); BOOL LoadToolBar(UINT nIDResource);

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

lpszResourceName - указатель на имя ресурса загружаемой панели инструментов.
nIDResource - идентификатор ресурса загружаемой панели инструментов.

Описание
Данная функция загружает панель инструментов (дочернее окно Windows) определяемую аргументом lpszResourceName или аргументом nIDResource.
CView
Класс CView обеспечивает основные функциональные возможности определяемых пользователем классов представления. Класс представления ассоциирован с классом документа и осуществляет интерфейс между документом и пользователем: класс представления реализует отображение документа на экране или принтере, а также передает информацию о реакции пользователя в документ.
Класс представления является производным от класса CWnd. Одна и та же рабочая область окна может совместно использоваться несколькими классами представления. Связь между классом представления и классом окна осуществляется в шаблоне документа. Когда пользователь открывает новое окно или разбивает существующее, шаблон документа создает новый класс представления и присоединяет это к документу.
Класс представления может быть присоединен только к одному документу, но к одному документу могут быть присоединены несколько классов представления. Эта ситуация может возникнуть при отображении документа в разделенном окне или в нескольких дочерних окнах в многооконного приложения (MDI). Приложение может поддерживать несколько различных классов представления, соответствующих одному и тому же классу документа. Например, программа обработки текстов могла бы обеспечивать как просмотр текста документа, так и просмотр его иерархической структуры, в котором содержатся только заголовки разделов. Эти различные классы представления могут выводить информацию в различные окна или в различные панели разделенного окна, если окно открыто в этом режиме.
Класс представления может получать информацию от пользователя через различные устройства, например, с клавиатуры, через щелчки и перемещения мыши, из команд меню, инструментальных панелей или полос прокрутки. Сообщения в данный класс поступают из связанного с ним окна. Если класс представления не обрабатывает данную команду, он передает ее связанному с ним классу документа. Для сопоставления идентификатору сообщения функции его обработки класс представления использует карту сообщений.
Класс представления осуществляет только отображение и изменение данных в документе, но не хранит эти изменения. Вся отображаемая на экране информация содержится в классе документа. Класс представления может непосредственно обращаться к данным, хранящимся в документе, если в последнем предусмотрены методы для доступа к этим данным.
После внесения изменений в документ класс представления, производящий данную операцию, обычно вызывает функцию CDocument::UpdateAllViews, посылающую другим классам просмотра, связанным с данным документом, сообщение о том, что в документ внесены изменения и классам просмотра необходимо обновить выводимую ими информацию. Эти сообщения обрабатываются функцией OnUpdate соответствующего класса просмотра.
Обычно, для вывода информации на экран используется функция CView::OnDraw. Эту функцию можно использовать, также, для осуществления предварительного просмотра печати и самой печати. Реализация цикла печати и предварительного просмотра документа возложена на приложение.
Описание данного класса содержится в файле заголовка afxwin.h.
Данный класс используется во многих демонстрационных приложениях, описанных в данной книге. Наиболее полное его описание приведено в главах 2 и 10.
DoPreparePrinting

BOOL DoPreparePrinting(CPrintInfo* pInfo);

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

pInfo - указатель на объект класса CPrintInfo, содержащий описание текущего задания для принтера.

Описание
Данная функция вызывается из перегруженной функции OnPreparePrinting для вызова диалогового окна Печать и создания контекста устройства принтера. Операции, выполняемые данной функцией зависят от того, был ли вызван режим печати или режим предварительного просмотра печати (определяется значением переменной m_bPreview, являющейся членом класса CPrintInfo, на объект которого указывает аргумент pInfo). Если производится распечатка файла, данная функция выводит диалоговое окно Печать, используя значения переменных объекта класса CPrintInfo, на который указывает аргумент pInfo. После закрытия диалогового окна функция DoPreparePrinting создает объект класса контекста устройства принтера, основываясь на значениях переменных аргумента pInfo, хранящих установки пользователя в диалоговом окне Печать. Этот контекст устройства используется для печати документа. Если функция вызывается в режиме предварительного просмотра печати, данная функция создает контекст устройства принтера, основываясь на его текущих установках. Контекст устройства используется для имитации принтера в процессе предварительного просмотра.
GetDocument

CDocument* GetDocument() const;

Возвращаемое значение
Указатель на объект класса CDocument, связанный с данным классом представления или NULL, если с данным классом не связан никакой документ.
Описание
Данная функция вызывается для того, чтобы получить указатель на документ, связанный с данным классом представления. Это позволяет получить данному классу доступ к методам класса документа.
OnBeginPrinting

virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

Аргументы

pDC - указатель на объект класса контекста устройства принтера.
pInfo - указатель на объект класса CPrintInfo, содержащий описание текущего задания для принтера.

Описание
Данная функция вызывается приложением при инициализации процесса печати или предварительного просмотра печати после вызова функции OnPreparePrinting. По умолчанию эта функция не выполняет никаких операций. Перегрузка данной функции позволяет включить в контекст устройства любые ресурсы GDI такие, как перья или шрифты, необходимые для осуществления процесса печати. Выбор объектов GDI в контекст устройства производится в функции OnPrint отдельно для каждой страницы. Если одни и те же объекты класса представления используются для вывода изображения на экран и для его печати, используйте различные идентификаторы для ресурсов GDI, используемых в каждом из этих режимов. Это позволит обновлять экран в процессе печати документа. Функция OnBeginPrinting может использоваться, также и для инициализации величин, зависящих от параметров используемого принтера. Например, количество страниц, необходимое для печати документа может зависеть от установок, которые сделал пользователь в диалоговом окне Настройка принтера (таких, как размер страницы). В этом случае размер документа не может быть определен в функции OnPreparePrinting, в которой недоступна вся необходимая для этого информация, содержащаяся в объекте класса контекста устройства принтера, создаваемого на основании информации, полученной из диалогового окна Настройка принтера. Функция OnBeginPrinting является первой перегружаемой функцией, имеющей доступ к объекту класса CDC, представляющего контекст устройства принтера. Поэтому размер документа может быть определен в этой функции. Если размер документа не будет определен в этой функции, в окне предварительного просмотра печати не появится полоса прокрутки.
OnDraw

virtual void OnDraw(CDC* pDC) = 0;

Аргументы

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

Описание
Данная функция вызывается приложением для отображения информации, хранящейся в документе. Приложение вызывает данную функцию, чтобы вывести изображение на экран, на печать или на предварительный просмотр печати. В каждом из этих случаев передаются указатель на объект класса контекста устройства, используемый в данном конкретном случае. Данная функция не имеет реализации по умолчанию. Данная функция должна перегружаться в каждом пользовательском классе представления. Передаваемый в качестве параметра функции объект класса CDC позволяет функции получить доступ к таким ресурсам GDI, как перья, шрифты и кисти. Вызов функции CDC::RectVisible позволяет сократить объем вычислений при рисовании за счет отказа от рисования невидимых участков изображения. Значение, возвращаемое функцией CDC::IsPrinting, позволяет определить, будет ли данное изображение выводиться на принтер.
OnEndPrinting

virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

Аргументы

pDC - указатель на контекст устройства принтера.
pInfo - указатель на объект класса CPrintInfo, содержащий описание данной работы.

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

virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);

Аргументы

pDC - указатель на объект класса контекста устройства, используемого для отображения документа.
pInfo - указатель на объект структуры CPrintInfo, описывающей текущее задание печати, если функция OnPrepareDC используется для печати или предварительного просмотра печати документа. Переменная m_nCurPage данной структуры содержит номер печатаемой страницы документа. Если функция OnPrepareDC вызывается для вывода на экран, данный аргумент имеет нулевое значение.

Описание
Вызывается приложением перед вызовом функции OnDraw при выводе на экран или перед функцией OnPrint перед печатью каждой станицы документа или ее предварительным просмотром. По умолчанию данная функция не выполняет никаких действий при выводе изображения на экран. Однако, данная функция может быть перегружена в производных классах, таких как CScrollView, для настройки атрибутов контекста устройства. Поэтому при ее перегрузке в пользовательских классах следует вызывать метод базового класса перед выполнением пользовательских операторов. Если данная функция вызывается для печати документа, то по умолчанию она проверяет содержимое объекта структуры, на который указывает аргумент pInfo. Если размер документа в данном объекте структуры не задан, функция OnPrepareDC считает, что документ содержит всего одну страницу и останавливает процесс печати после распечатки первой страницы документа. Для остановки процесса печати данная функция присваивает переменной m_bContinuePrinting, являющейся членом структуры CPrintInfo, значение FALSE. Обычно функция OnPrepareDC перегружается чтобы:

установить атрибуты контекста устройства для указанной страницы при ее печати. Например, в данной функции может быть установлен режим отображения;
осуществить разбивку документа на страницы в процессе печати. Обычно, размер документа определяется при инициализации процесса его печати в функции OnPreparePrinting. Однако, в том случае, когда размер документа не может быть определен заранее (например, при печати неизвестного заранее числа записей базы данных), перегрузка функции OnPrepareDC позволяет проверять признак конца документа в процессе его печати. При достижении последней страницы документа данная функция присваивает переменной m_bContinuePrinting, являющейся членом структуры CPrintInfo, значение FALSE;
посылать принтеру управляющие последовательности для его настройки на печать каждой страницы. Для посылки принтеру управляющих последовательностей вызовите функцию CDC::Escape для объект класса, на который указывает аргумент pDC.

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

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

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

pInfo - указатель на объект класса CPrintInfo, содержащий описание текущего задания для принтера.

Описание
Вызывается приложением перед печатью или предварительным просмотром документа. По умолчанию не производит никаких действий.
Данная функция должна быть перегружена для обеспечения возможности печати или предварительного просмотром документа. В ней необходимо вызвать функцию DoPreparePrinting и передать ей аргумент pInfo. Значение, возвращаемое функцией DoPreparePrinting, является возвращаемым значением данной функции. Функция DoPreparePrinting выводит диалоговое окно Печать и создает контекст устройства принтера. Если при инициализации диалогового окна Печать следует указать значения параметров, отличные от значений, используемых для них по умолчанию, следует присвоить эти значения соответствующим переменным аргумента pInfo. Например, при известном числе страниц в документе следует вызвать функциюSetMaxPage, являющуюся членом класса CPrintInfo, на объект которого указывает аргумент pInfo, перед вызовом функции DoPreparePrinting. Эта величина определит значения, выводимые в текстовых полях Страницы с: и по: диалогового окна Печать.
Функция DoPreparePrinting не выводит диалоговое окно Печать в режиме предварительного просмотра печати. Чтобы не выводить диалоговое окно Печать при печати документа, проверьте, что переменная m_bPreview, являющаяся членом классаCPrintInfo, на объект которого указывает аргумент pInfo, имеет значение FALSE, присвойте ей значение TRUE перед вызовом функции DoPreparePrinting и восстановите значение FALSE после выхода из этой функции.
Если необходимо произвести инициализацию, использующую объект класса CDC, представляющий контекст устройства принтера (например, для определения размера печатаемой страницы для определения количества страниц в документе), перегрузите функцию OnBeginPrinting.
Если необходимо установить значение переменных m_nNumPreviewPages или m_strPageDesc, являющихся членами класса CPrintInfo, на объект которого указывает аргумент pInfo, сделайте это после вызова функции DoPreparePrinting. ФункцияDoPreparePrinting присваивает переменной m_nNumPreviewPages значение из файла инициализации и присваивает переменной m_strPageDesc ее значение по умолчанию.
OnPrint

virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);

Аргументы

pDC - указатель на объект класса контекста устройства принтера.
pInfo - указатель на объект класса CPrintInfo, содержащий описание текущего задания для принтера.

Описание
Вызывается приложением для печати или предварительного просмотра страницы документа. Для каждой печатаемой страницы приложение вызывает данную функцию сразу же после вызова функции OnPrepareDC. Номер печатаемой страницы определяется значением переменной m_nCurPage, являющейся членом класса CPrintInfo, на объект которого указывает аргумент pInfo. По умолчанию данная функция вызывает функцию OnDraw и передает ей контекст устройства принтера. Данная функция перегружается для решения следующих задач:

для печати многостраничных документов. При печати документа с использованием функции OnDraw для определения фрагмент документа, который будет распечатываться на данной странице, необходимо установить начало отсчета рабочей области (однако данная операция обычно производится в функции OnPrepareDC);
для изменения формы отображения документа при печати (в том случае, если приложение не соответствует принципу "Что вы видите, то вы и имеете"). В данном случае вместо того, чтобы передавать контекст устройства функции OnDraw, пользователь может вызвать собственную функцию, выводящую документ на печать и использующую для обработки изображения параметры, отличные от тех, которые используются при выводе его на экран;
для использования при печати документа дополнительных ресурсов GDI, не используемых при выводе его на экран. Ресурсы GDI должны выбираться в контекст устройства перед началом процесса печати и освобождаться после его завершения. Эти ресурсы создаются в функции OnBeginPrinting и уничтожаться в функции OnEndPrinting;
для вывода колонтитулов. При этом можно использовать функцию OnDraw, ограничив ей область печати.

Переменная m_rectDraw, являющаяся членом класса CPrintInfo, на объект которого указывает аргумент pInfo, содержит размеры области печати страницы, выраженные в логических единицах. Не следует вызывать функцию OnPrepareDC при перегрузке функции OnPrint, поскольку приложение автоматически вызывает функцию OnPrepareDC перед вызовом функции OnPrint.
OnUpdate

virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);

Аргументы

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

Описание
Данная функция является функцией обработки сообщения, посылаемого функцией CDocument::UpdateAllViews. Функция UpdateAllViews вызывается классом представления после внесения изменений в связанный с ним документ. ФункцияOnUpdate вызывается, также, функцией CView::OnInitialUpdate. По умолчанию функция OnUpdate посылает сообщение о необходимости перерисовки всей рабочей области окна, которая будет произведена после получения очередного сообщенияWM_PAINT. Для того чтобы перерисовывалась не вся рабочая область окна, а только ее часть, необходимо перегрузить данную функцию в пользовательском классе представления. Информация об области перерисовки должна передаваться во втором или третьем параметре данной функции. Параметр lHint данной функции обычно используется для передачи битовой маски или переменной перечислимого типа. Параметр pHint является указателем на объект класса CObject, который может содержать достаточно сложные структуры данных. Для определения типа передаваемого объекта в перегруженной функции OnUpdate, обычно, используется функция CObject::IsKindOf. Как правило, функция OnUpdate не содержит вызовов функций отображения графической информации. Вместо этого она определяет прямоугольник, заданный в экранной системе координат, определяющий область экрана, нуждающуюся в обновлении, и передает указатель на него в качестве первого аргумента функции CWnd::InvalidateRec. Содержимое указанной области будет обновлено после получения очередного сообщения WM_PAINT. Если аргумент lHint имеет значение 0, а аргумент pHint - NULL, то документ посылает стандартное сообщение о необходимости перерисовки рабочей области данного класса представления. После получения стандартного сообщения о необходимости перерисовки рабочей области или в том случае, когда класс представления не смог определить, какую информацию ему передали в параметрах сообщения, он производит обновление всей своей рабочей области.
CWinApp
Класс CWinApp является базовым классом для создания объектов классов приложений Windows. Объект класса представления содержит функции, позволяющие инициализировать приложение пользователя (и каждый его экземпляр), а также запускать приложение на исполнение. Каждое приложение, использующее библиотеку MFC, может содержать только один объект класса CWinApp. Этот объект создается на этапе создания глобальных объектов и уже существует к моменту вызова функцииWinMain, содержащейся в библиотеке MFC. Объявление объектов классов, производных от класса CWinApp, также должно быть глобальным. Функция InitInstance, принадлежащая данному классу, служит для создания объекта класса главного окна приложения. Кроме функций класса CWinApp библиотека MFC содержит следующие функции, позволяющие получить доступ к объектам класса CWinApp и к содержащейся в них информации.

AfxGetApp - позволяет получить указатель на объект класса CWinApp.
AfxGetInstanceHandle - позволяет получить указатель на текущую копию объекта класса приложения.
AfxGetResourceHandle - позволяет получить дескриптор ресурсов приложения.
AfxGetAppName - позволяет получить указатель на строку, содержащую имя приложения. Другим способом получить эту информацию является использование указателя на объект класса CWinApp для доступа к переменной-члену данного классаm_pszExeName, содержащей указатель на ту же самую строку.

Описание данного класса содержится в файле заголовка afxwin.h. Данный класс используется во многих демонстрационных приложениях, описанных в данной книге.
AddDocTemplate

void AddDocTemplate(CDocTemplate* pTemplate);

Аргументы

pTemplate - указатель на объект класса CDocTemplate, который необходимо добавить в данное приложение.

Описание
Данная функция добавляет объект класса шаблона документа в список доступных шаблонов документов данного приложения. Список доступных шаблонов документов должен быть заполнен до вызова функции RegisterShellFileTypes.
EnableHtmlHelp

void EnableHtmlHelp();

Описание
Данная функция вызывается в конструкторе класса, производного от класса CWinApp, для обеспечения возможности использования в приложении справочной системы HTML. Эта функция присваивает переменной m_bUseHtmlHelp значение TRUE.
GetProfileString

CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL);

Возвращаемое значение
Строка, хранящаяся в файле приложения с расширением .ini, или строка, передаваемая в аргументе lpszDefault, если указанная строка не содержится в файле с расширением .ini. Максимальная длина строки, которая может быть получена подобным образом, равна величине _MAX_PATH. Если величина lpszDefault равна нулю, то возвращается пустая строка.
Аргументы

lpszSection - указатель на символьную строку, заканчивающуюся нулем, определяющую секцию, содержащую данную строку.
lpszEntry - указатель на символьную строку, заканчивающуюся нулем, определяющую идентификатор строки в записи. Этот аргумент не может принимать нулевое значение.
lpszDefault - указатель на символьную строку, заканчивающуюся нулем, содержащую строку, которая будет возвращаться функцией, если в соответствующем файле не будет найдена указанная строка.

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

virtual BOOL InitInstance();

Возвращаемое значение
Ненулевое, если инициализация прошла успешно, в противном случае - ноль.
Описание
Операционная система Windows допускает одновременную работу нескольких копий одного приложения. Процесс создания приложения концептуально подразделяется на два этапа: предварительное создание приложения, которое осуществляется при первом запуске программы на исполнение, и инициализация экземпляра приложения, которая происходит при запуске на исполнение любой копии программы, включая и первую. Данная функция вызывается функцией WinMain, принадлежащей классу главного окна. Обычно, в процессе выполнения перегруженной пользователем функции InitInstance производится создание объекта главного окна программы и устанавливается значение члена класса CWinThread::m_pMainWnd, содержащего указатель на это окно.
LoadStdProfileSettings

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

Аргументы

nMaxMRU - текущее число элементов в списке недавно использованных файлов.

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

afx_msg void OnContextHelp();

Описание
Как правило, данная функция вызывается в том случае, когда пользователь нажимает комбинацию клавиш +.При перегрузке данной функции в карту сообщений класса, производного от класса CWinApp, включается строка ON_COMMAND(ID_CONTEXT_HELP, OnContextHelp) а в таблицу акселераторов приложения включается соответствующая запись. Функция OnContextHelp переводит приложение в режим вывода контекстной справки. Указатель мыши в этом режиме представляет собой комбинацию наклонной стрелки и знака вопроса. При помещении данного указателя на элемент управления диалогового окна, элемент окна или команду меню и нажатии левой кнопки мыши на экран выводится окно контекстной справки по данному элементу.
OnHelp

afx_msg void OnHelp();

Описание
Для вызова данной функции необходимо добавить в карту сообщений пользовательского класса, производного от класса CWinApp следующий макрос ON_COMMAND(ID_HELP, OnHelp) Обычно для вызова данной команды используется клавиша , однако, использование данной клавиши представляет собой общепринятую практику и нигде не регламентировано. По умолчанию данная функция обработки сообщения определяет контекст справки, соответствующий активному окну, диалоговому окну или команде меню, а затем вызывает на исполнение файл WinHelp.exe. Если для данного объекта не определен контекст, то используется контекст, определенный по умолчанию. Перегрузка данной функции позволяет задать контекст для объекта, отличного от объектов окна, диалогового окна, команды меню или кнопки панели инструментов, которым в данный момент принадлежит фокус ввода. В данной функции вызывается функция WinHelp, которой передается контекстный идентификатор справки.
OnHelpIndex

afx_msg void OnHelpIndex();

Описание
Если это разрешено, приложение вызывает эту функцию обработки сообщения при выборе пользователем команды меню Help|Index (Справка|Предметный указатель). В этой функции вызывается функция WinHelp с аргументом HELP_INDEX. Чтобы воспользоваться данной функцией, необходимо поместить в карту сообщений класса CWinApp макрос ON_COMMAND(ID_HELP_INDEX, OnHelpIndex).
ParseCommandLine

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

Аргументы

rCmdInfo - ссылка на объект класса CCommandLineInfo.

Описание
Данная функция вызывается для преобразования параметров командной строки в значения, присваиваемые элементам объекта класса CCommandLineInfo. Для заполнения каждого элемента данного объекта вызывается своя функцияCCommandLineInfo::ParseParam.
При создании с использованием мастера AppWizard нового приложения, использующего библиотеку MFC, мастер AppWizard создает в функции InitInstance локальный объект класса CCommandLineInfo, а затем вызывает функцииProcessShellCommand и ParseCommandLine. Обработка параметров командной строки производится следующим образом:
1. После своего создания в функции InitInstance объект класса CCommandLineInfo передается в качестве параметра функции ParseCommandLine.
2. Функция ParseCommandLine последовательно вызывает функцию CCommandLineInfo::ParseParam для каждого параметра командной строки.
3. Функция ParseParam присваивает значения переменным в объекте класса CCommandLineInfo, который затем передается в качестве аргумента функции ProcessShellCommand.
4. Функция ProcessShellCommand производит действия, указанные в параметрах командной строки.
PreTranslateMessage
virtual BOOL PreTranslateMessage(MSG* pMsg);
Возвращаемое значение
Возвращает ненулевое значение, если данная функция завершила обработку сообщения, и нулевое значение, если необходимо вызвать процедуру стандартной обработки данного сообщения.
Аргументы
pMsg - указатель на объект структуры MSG, содержащий обрабатываемое сообщение.
Описание
Перегрузка данной функции позволяет перехватывать сообщения, направляемые окну, до их передачи на обработку функциям TranslateMessage и DispatchMessage. По умолчанию данная функция обрабатывает нажатие сочетаний клавиш. Поэтому в перегруженной функции необходимо вызывать метод базового класса.