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


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

Пошаговая инструкция по работе с программой P-CAD (ACCEL EDA) - Статья.

Компьютерная телефония - Статья.

Стандарты MPEG - Статья.

Как составить программу для "DENDY" - Статья.

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

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

Поделиться:

1    2    3    4    5    6    7    8    9    10   

EndDoc

int EndDoc();

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

SP_ERROR - неизвестная ошибка.
SP_OUTOFDISK - недостаточно дискового пространства выделенного для спулинга и оно не может быть увеличено.
SP_OUTOFMEMORY - недостаточно оперативной памяти для спулинга.
SP_USERABORT - пользователь прервал печать через Диспетчер печати.

Описание
Завершает текущий сеанс печати, инициированный вызовом функции StartDoc. Эта функция служит для замены управляющей последовательности ENDDOC, посылаемой принтеру, и должна вызываться непосредственно после успешного завершения процесса печати. Если в процессе сеанса печати возникла ошибка или процесс печати был прерван пользователем, для завершения процесса печати не следует вызывать функции EndDoc или AbortDoc. GDI автоматически завершит процесс прежде, чем он выдаст сообщение об ошибке. Эта функция не должна использоваться в метафайлах.
EndPage

int EndPage();

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

SP_ERROR - неизвестная ошибка.
SP_APPABORT - печать прекращена потому, что приложение завершило свою работу.
SP_USERABORT - пользователь прервал печать через Диспетчер печати.
SP_OUTOFDISK - недостаточно дискового пространства выделенного для спулинга и оно не может быть увеличено.
SP_OUTOFMEMORY - недостаточно оперативной памяти для спулинга.

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

void FillRect(LPCRECT lpRect, CBrush* pBrush);

Аргументы

lpRect - указатель на объект структуры RECT, содержащий логические координаты заполняемого прямоугольника. В качестве данного аргумента может использоваться объект класса CRect.
pBrush - определяет кисть, используемую для заполнения прямоугольника.

Описание
Данная функция используется для заполнения указанного прямоугольника указанной кистью. Функция заполняет весь прямоугольник, включая его левую и верхнюю границы, но исключая его правую и нижнюю границы. Используемая кисть должна быть создана с использованием функций CBrush::CreateHatchBrush, CBrush::CreatePatternBrush или CBrush::CreateSolidBrush или должна быть получена с использованием функции Windows ::GetStockObject. В процессе своей работы функция FillRect проверяет значения величин, передаваемых в переменных top, bottom, left и right передаваемого ей в качестве аргумента объекта структуры RECT. Если величина bottom оказывается меньше либо равной величине top или величина right оказывается меньше либо равной величине left, то прямоугольник не рисуется. Функция FillRect аналогична функции CDC::FillSolidRect за тем исключением, что в функции FillRect указывается кисть, что в свою очередь означает, что данный прямоугольник может быть заполнен одним цветом, определенным трафаретом или заданным образцом. Функция FillSolidRect может заполнить данный прямоугольник только одним цветом (указанным в аргументе COLORREF). ФункцияFillRect, обычно, работает медленнее, чем функция FillSolidRect.
GetDeviceCaps

int GetDeviceCaps(int nIndex) const;

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

nIndex - определяет тип возвращаемой информации. Может иметь одно из следующих значений:
DRIVERVERSION - номер версии. Например, для версии 1.0 возвращается величина 0x100;
TECHNOLOGY - технология устройства. Может принимать одно из следующих значений:
DT_PLOTTER - векторный плоттер.
DT_RASDISPLAY - растровый дисплей.
DT_RASPRINTER - растровый принтер.
DT_RASCAMERA - растровая камера.
DT_CHARSTREAM - текстовый поток.
DT_METAFILE - метафайл.
DT_DISPFILE - файл дисплея.
HORZSIZE - физическая ширина дисплея (в миллиметрах);
VERTSIZE - физическая высота дисплея (в миллиметрах);
HORZRES - размер дисплея по горизонтали (в элементах изображения);
VERTRES - размер дисплея по вертикали (в строках растра);
LOGPIXELSX - число элементов изображения в логическом дюйме по горизонтали дисплея;
LOGPIXELSY - число элементов изображения в логическом дюйме по вертикали дисплея;
BITSPIXEL - количество битов, используемых для кодирования цвета каждого элемента изображения;
PLANES - количество битовых плоскостей;
NUMBRUSHES - количество кистей в устройстве;
NUMPENS - количество перьев в устройстве;
NUMFONTS - количество шрифтов в устройстве;
NUMCOLORS - количество цветов в таблице цветов устройства;
ASPECTX - относительная ширина элемента изображения устройства, используемая при рисовании линий;
ASPECTY - относительная высота элемента изображения устройства, используемая при рисовании линий;
ASPECTXY - размер по диагонали элемента изображения устройства, используемая при рисовании линий;
PDEVICESIZE - размер внутренней структуры PDEVICE;
CLIPCAPS - возможность задания областей отсечки. Может принимать одно из следующих значений:
CP_NONE - выводимое изображение не ограничивается.
CP_RECTANGLE - прямоугольная область отсечки.
CP_REGION - произвольная область отсечки.
SIZEPALETTE - количество цветов в системной палитре. Аргумент nIndex может принимать данное значение только в том случае, когда драйвер устройства установил бит RC_PALETTE в индексе RASTERCAPS;
NUMRESERVED - количество зарезервированных цветов в системной палитре. Аргумент nIndex может принимать данное значение только в том случае, когда драйвер устройства установил бит RC_PALETTE в индексе RASTERCAPS;
COLORRES - текущее цветовое разрешение устройства, измеряемое в битах на элемент изображения. Аргумент nIndex может принимать данное значение только в том случае, когда драйвер устройства установил бит RC_PALETTE в индексе RASTERCAPS;
RASTERCAPS - величина, указывающая на возможности растеризации устройства. Может быть комбинацией следующих значений:
RC_BANDING - требует поддержки возможностей объединения.
RC_BIGFONT - устройство способно работать со шрифтами размером более 64 КБ.
RC_BITBLT - обладает возможностью передачи битовых образов.
RC_BITMAP64 - устройство способно работать с битовыми образами шрифтами размером более 64 КБ.
RC_DEVBITS - устройство способно работать с аппаратно зависимыми битовыми образами.
RC_DI_BITMAP - устройство способно работать с функциями Windows SetDIBits и GetDIBits.
RC_DIBTODEV - устройство способно работать с функцией Windows SetDIBitsToDevice.
RC_FLOODFILL - устройство способно осуществлять потоковое заполнение.
RC_GDI20_OUTPUT - устройство способно работать с функциями Windows версии 2.0.
RC_GDI20_STATE - включает блок состояния в контекст устройства.
RC_NONE - устройство не способно выполнять растровые операции.
RC_OP_DX_OUTPUT - устройство способно работать с массивом DX и выводить прозрачные изображения.
RC_PALETTE - устройство способно работать с палитрами.
RC_SAVEBITMAP - устройство способно локально хранить битовые образы.
RC_SCALING - устройство способно масштабировать изображение.
RC_STRETCHBLT - устройство способно работать с функцией StretchBlt.
RC_STRETCHDIB - устройство способно работать с функцией Windows StretchDIBits
CURVECAPS - определяет способность устройства вычерчивать кривые. Может быть комбинацией следующих значений:
CC_NONE - устройство не способно вычерчивать кривые.
CC_CIRCLES - устройство способно вычерчивать окружности.
CC_PIE - устройство способно вычерчивать секторные диаграммы.
CC_CHORD - устройство способно вычерчивать хорды.
CC_ELLIPSES - устройство способно вычерчивать эллипсы.
CC_WIDE - устройство способно вычерчивать широкие рамки.
CC_STYLED - устройство способно вычерчивать рамки с использованием стилей.
CC_WIDESTYLED - устройство способно вычерчивать широкие рамки с использованием стилей.
CC_INTERIORS - устройство способно заполнять внутреннее пространство.
CC_ROUNDRECT - устройство способно вычерчивать прямоугольники с закругленными углами.
LINECAPS - определяет способность устройства вычерчивать линии. Может быть комбинацией следующих значений:
LC_NONE - устройство не способно вычерчивать линии.
LC_POLYLINE - устройство способно одновременно вычерчивать несколько связанных линий.
LC_MARKER - устройство способно выводить маркеры.
LC_POLYMARKER - устройство способно выводить множественные маркеры.
LC_WIDE - устройство способно вычерчивать широкие линии.
LC_STYLED - устройство способно вычерчивать линии с использованием стилей.
LC_WIDESTYLED - устройство способно вычерчивать широкие линии с использованием стилей.
LC_INTERIORS - устройство способно заполнять внутреннее пространство.
POLYGONALCAPS - определяет способность устройства вычерчивать многоугольники. Может быть комбинацией следующих значений:
PC_NONE - устройство не способно вычерчивать многоугольники.
PC_POLYGON - устройство способно вычерчивать многоугольники с различным заполнением.
PC_RECTANGLE - устройство способно вычерчивать прямоугольники.
PC_WINDPOLYGON - устройство способно вычерчивать многоугольники с заполнением спиральным числом.
PC_SCANLINE - устройство может использовать построчную развертку.
PC_WIDE - устройство способно вычерчивать широкие рамки.
PC_STYLED - устройство способно вычерчивать границы с использованием стилей.
PC_WIDESTYLED - устройство способно вычерчивать широкие рамки с использованием стилей.
PC_INTERIORS - устройство способно заполнять внутреннее пространство.
TEXTCAPS - определяет возможности устройства при работе с текстами. Может быть комбинацией следующих значений:
TC_OP_CHARACTER - определяет такое разрешение при выводе текстов, которое позволяет устройству поместить свой шрифт в любой элемент изображения. Это является необходимым условием для работы устройствами, имеющими собственные шрифты.
TC_OP_STROKE - определяет разрешение для вывода штрихов, указывая на то, что устройство может пропустить любой штрих в своем шрифте.
TC_CP_STROKE - определяет точность отсечки штриха, указывая, что устройство может обрезать свои шрифты по границам элементов изображения.
TC_CR_90 - устройство способно поворачивать символы на 90 градусов, и шаг поворота составляет 90 градусов.
TC_CR_ANY - устройство способно поворачивать символы на любой угол.
TC_SF_X_YINDEP - устройство может производить независимое масштабирование шрифта по вертикальной и горизонтальной осям.
TC_SA_DOUBLE - устройство может удваивать размеры своих шрифтов.
TC_SA_INTEGER - устройство может увеличивать размеры своих шрифтов в любое целое число раз.
TC_SA_CONTIN - устройство может произвольно изменять размеры своих шрифтов, но при этом сохраняет соотношение его вертикального и горизонтального размеров.
TC_EA_DOUBLE - устройство позволяет использовать жирные шрифты. Если этот параметр установлен для принтера, GDI старается создать жирный шрифт в устройстве за счет его двойной печати.
TC_IA_ABLE - устройство позволяет использовать курсивные шрифты. Если этот бит не установлен, GDI полагает, что данное устройство не может работать с курсивными шрифтами.
TC_UA_ABLE - устройство позволяет использовать подчеркивание текста. Если этот бит не установлен, GDI создает операцию подчеркивания для шрифта устройства.
TC_SO_ABLE - устройство позволяет использовать зачеркивание текста. Если этот бит не установлен, GDI создает операцию зачеркивания для шрифта устройства.
TC_RA_ABLE - устройство позволяет использовать растровые шрифты. Это означает, что GDI должен пронумеровать все растровые шрифты или шрифты TrueType, имеющиеся в устройстве. Для этого вызывается функция Windows EnumFonts илиEnumFontFamilies. Если этот бит не установлен, то при вызове данных функций растровые шрифты или шрифты TrueType не нумеруются.
TC_VA_ABLE - устройство позволяет использовать векторные шрифты. Это означает, что GDI должен пронумеровать все имеющиеся в устройстве векторные шрифты. Для этого вызывается функция Windows EnumFonts или EnumFontFamilies. Это имеет значение только для векторных устройств (например, плоттеров). Драйверы дисплея (который должен использовать растровые шрифты) и растровых принтеров всегда нумеруют векторные шрифты, поскольку GDI растеризует векторные шрифты перед их передачей драйверу.
TC_RESERVED - зарезервировано и должно иметь нулевое значение.

Описание
Позволяет получить разнообразные сведения об устройствах отображения информации.
GetSafeHdc

HDC GetSafeHdc() const;

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

CSize GetTextExtent(LPCTSTR lpszString, int nCount) const;
CSize GetTextExtent(const CString& str) const;

Возвращаемое значение
Размер строки (в логических единицах) записанный в объект класса CSize.
Аргументы

lpszString - указатель на символьную строку. В качестве данного аргумента может также выступать объект класса CString.
nCount - определяет количество символов в строке.
str - объект класса CString содержащий измеряемую строку.

Описание
Данная функция позволяет определить ширину и высоту строки символов при выводе ее установленным в настоящее время шрифтом. Информация извлекается из переменной m_hAttribDC данного контекста устройства. Установки текущей области отсечки не влияют на возвращаемые функцией GetTextExtent значения. Поскольку некоторые устройства не помещают символы строки в последовательный массив ячеек (уменьшают апрош в характерных сочетаниях пар знаков) сумма размеров отдельных символов в строке может не совпадать с размером всей строки.
IsPrinting

BOOL IsPrinting() const;

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

BOOL Rectangle(int x1, int y1, int x2, int y2);
BOOL Rectangle(LPCRECT lpRect);

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

x1 - определяет горизонтальную координату левого верхнего угла прямоугольника (в логических единицах).
y1 - определяет вертикальную координату левого верхнего угла прямоугольника (в логических единицах).
x2 - определяет горизонтальную координату правого нижнего угла прямоугольника (в логических единицах).
y2 - определяет вертикальную координату правого нижнего угла прямоугольника (в логических единицах).
lpRect - определяет прямоугольник в логических единицах. В качестве данного аргумента может выступать как объект класса CRect, так и указатель на объект структуры RECT.

Описание
Рисует прямоугольник, используя текущее перо. Внутренняя поверхность прямоугольника заполняется текущей кистью. Прямоугольник доходит до, но не включает свои правые и нижние координаты. Это означает, что высота прямоугольника составляет y2 - y1, а его ширина составляет x2 - x1. Как высота, так и ширина прямоугольника должны составлять больше 2 и меньше 32 767 логических единиц.
SelectClipRgn

virtual int SelectClipRgn(CRgn* pRgn);
int SelectClipRgn(CRgn* pRgn, int nMode);

Возвращаемое значение
Тип области. Может принимать одно из следующих значений:

COMPLEXREGION - новая область отсечки имеет перекрывающиеся границы;
ERROR - используется недопустимый контекст устройства или недопустимая область;
NULLREGION - создана пустая область отсечки;
SIMPLEREGION - новая область отсечки не имеет перекрывающихся границ.

Аргументы

pRgn - указатель на выбранную область.
В первой версии функции SelectClipRgn нулевое значение данного аргумента означает, что выбирается вся рабочая область окна, а область отсечки совпадает с границами окна.
Во второй версии функции SelectClipRgn данный аргумент может принимать нулевое значение только в режиме RGN_COPY.
nMode - определяет выполняемую операцию. Может принимать одно из следующих значений:
RGN_AND - новая область отсечки представляет собой пересечение текущей области отсечки и области, определенной в аргументе pRgn;
RGN_COPY - новая область отсечки полностью совпадает с областью, заданной в аргументе pRgn. В этом случае данная функция идентична своей первой версии, однако, если аргумент pRgn в данной версии равен нулю, то в качестве новой области отсечки принимается область отсечки по умолчанию (нулевая область);
RGN_DIFF - новая область отсечки представляет собой текущую область отсечки, из которой исключены области, перекрывающиеся с областью, заданной в аргументе pRgn;
RGN_OR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn;
RGN_XOR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn, за исключением областей их пересечения.

Описание
Выбирает указанную область как новую область отсечки для данного контекста устройства. Используется копия указанной области. Сама область может использоваться в неограниченном количестве объектов класса контекста устройств или может быть удалена. Функция предполагает, что координаты указанной области заданы в единицах устройства. Некоторые принтеры поддерживают в текстовом режиме более высокое разрешение, чем в графическом, для поддержания разрешения, необходимого для задания параметров шрифтов. В этих устройствах при запросе его разрешения сообщаются величины, используемые в режиме высокого разрешения, то есть в текстовом режиме. После этого в данных устройствах производится перерасчет координат графических объектов таким образом, чтобы несколько точек, заданных с высоким разрешением, отображались в одной точке, выводимой с графическим разрешением. При использовании режима вывода текста необходимо всегда вызывать функцию SelectClipRgn. Приложения, использующие масштабирование графических объектов при выводе их с использованием функций GDI должны использовать функцию GETSCALINGFACTOR, позволяющую определить параметры масштабирования данного принтера. Использование неправильного параметра масштабирования может привести к обрезанию выводимой информации. При использовании области для задания области отсечки графических объектов GDI делит полученные координаты на величину параметра масштабирования. При использовании области для задания области отсечки текста, такого преобразования координат не производится. Параметр масштабирования равный 1 приводит к делению координат на 2, а параметр масштабирования равный 2 приводит к делению координат на 4, и так далее.
SelectObject

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);

Возвращаемое значение
Указатель на замещаемый объект одного из классов, производных от класса CGdiObject, например на объект класса CPen. Тип возвращаемого значения зависит от версии используемой функции. В случае возникновения ошибки возвращается нулевое значение. Эта функция может возвращать указатель на временный объект. Это означает, что указатель на данный объект можно использовать только в пределах функции обработки одного сообщения Windows. Более подробная информация содержится в описании функции CGdiObject::FromHandle. Версия функции, аргументом которой является указатель на объект класса CRgn, выполняет ту же функцию, что и функция SelectClipRgn. Ее возвращаемая величина может принимать следующие значения:

COMPLEXREGION - новая область отсечки имеет пересекающиеся границы;
ERROR - ошибка при задании контекста устройства или недопустимая область отсечки;
NULLREGION - новая область отсечки представляет собой пустую область;
SIMPLEREGION - новая область отсечки не имеет пересекающихся границ.

Аргументы

pPen - указатель на объект класса CPen.
pBrush - указатель на объект класса CBrush.
pFont - указатель на объект класса CFont.
pBitmap - указатель на объект класса CBitmap.
pRgn - указатель на объект класса CRgn.

Описание
Выбирает объект класса в контекст устройства. Класс CDC содержит пять версий данной функции, отличающихся типом аргумента и возвращаемого значения. В качестве аргументов данной функции могут выступать объекты классов пера, кисти, шрифта, битового образа и области. Выбранный в контекст объект замещает соответствующий объект в контексте устройства. Например, если аргумент pObject обобщенной версии данной функции указывает на объект класса CPen, то данная функция замещает в данном контексте устройства текущее перо на перо, указанной в аргументе pObject. Приложение может выбирать битовый образ только в контекст устройства памяти и этот битовый образ не может быть выбран одновременно в два и более контекстов устройства памяти. Формат битового образа должен быть монохромным или совместимым с контекстом данного устройства. В противном случае функция SelectObject возвращает ошибку. В версии Windows 3.1 и более поздних версиях функция SelectObject возвращает ту же самую величину независимо от того, используется ли она в метафайлах или нет. В предыдущих версиях данная функция при вызове ее в метафайлах возвращала ненулевое значение в случае своего успешного завершения, и нулевое значение в противном случае.
SetMapMode

virtual int SetMapMode(int nMapMode);

Возвращаемое значение
Предыдущий режим отображения.
Аргументы

nMapMode - определяет новый режим отображения. Может принимать одно из следующих значений:
MM_ANISOTROPIC - логические единицы преобразуются в произвольные единицы с произвольным направлением осей координат. Установка режима отображения MM_ANISOTROPIC не изменяет установок в текущем окне и в текущей рабочей области окна. Для изменения единиц измерения, ориентации и масштаба вызываются функции SetWindowExt и SetViewportExt;
MM_HIENGLISH - каждая логическая единица преобразуется в 0.001 дюйма. Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вверх;
MM_HIMETRIC - каждая логическая единица преобразуется в 0.01 миллиметра. Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вверх;
MM_ISOTROPIC - логические единицы преобразуются в произвольные единицы с произвольным направлением осей координат, но с одинаковым масштабом по осям. Для изменения единиц измерения, ориентации и масштаба вызываются функцииSetWindowExt и SetViewportExt. Для обеспечения одинакового масштаба отображения по осям GDI производит необходимые настройки;
MM_LOENGLISH - каждая логическая единица преобразуется в 0.01 дюйма. Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вверх;
MM_LOMETRIC - каждая логическая единица преобразуется в 0.1 миллиметра. Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вверх;
MM_TEXT - каждая логическая единица преобразуется в 1 элемент изображения. Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вниз;
MM_TWIPS - каждая логическая единица преобразуется в 1/20 пики (поскольку пика составляет 1/72 дюйма, то данная величина составляет 1/1440 дюйма). Рост величин по горизонтальной оси приводит к перемещению вправо, а рост величин по вертикальной оси приводит к перемещению вверх.

Описание
Устанавливает режим отображения. Режим отображения определяет единицы измерения, используемые при преобразовании логических единиц в единицы устройства. Кроме того, режим отображения определяет направление осей координат. Режим отображения MM_TEXT позволяет приложению непосредственно работать с элементами изображения устройства. В этом случае одна логическая единица соответствует одному элементу изображения устройства. Физический размер элементов изображения зависит от конкретного устройства. Режимы отображения MM_HIENGLISH, MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRIC и MM_TWIPS используются при выводе изображений, размеры которых не зависят от устройства, на котором они выводятся. Режим отображения MM_ISOTROPIC обеспечивает соотношение масштабов горизонтальной и вертикальной оси, равное 1:1. В режиме отображения MM_ANISOTROPIC горизонтальная и вертикальная оси имеют независимый масштаб.
SetViewportOrg

virtual CPoint SetViewportOrg(int x, int y);
virtual CPoint SetViewportOrg(POINT point);

Возвращаемое значение
Предыдущее значение начала отсчета рабочей области (в координатах устройства) как объект класса CPoint.
Аргументы

x - определяет горизонтальную координату начала отсчета рабочей области, выраженную в координатах устройства. Значение данного аргумента должно лежать в пределах системы координат устройства.
y - определяет вертикальную координату начала отсчета рабочей области, выраженную в координатах устройства. Значение данного аргумента должно лежать в пределах системы координат устройства.
point - определяет координаты начала отсчета рабочей области. Значение данного аргумента должно лежать в пределах системы координат устройства. В качестве данного аргумента может выступать как объект структуры POINT, так и объект классаCPoint.

Описание
Устанавливает начало отсчета рабочей области контекста устройства. Рабочая область, наряду с окном контекста устройства, определяет то, каким образом GDI преобразует координаты, указанные в логической системе координат, в систему координат физического устройства. Другими словами, как GDI преобразует логические координаты в координаты устройства. Начало отсчета рабочей области определяет точку, заданную в системе координат устройства, в которую GDI помещает начало координат окна, под которым понимается точка, заданная в логической системе координат, определяемая функцией SetWindowOrg. GDI преобразует все остальные точки изображения, следуя той же процедуре, которая использовалась для преобразования начала координат окна в начало отсчета рабочей области. Например, все точки круга, описанного вокруг точки начала координат окна преобразуются в точки круга, описанного вокруг начала отсчета рабочей области. Аналогично, все точки линии, проходящей через начало координат окна преобразуются в точки линии, проходящей через начало отсчета рабочей области.
StartDoc

int StartDoc(LPDOCINFO lpDocInfo);

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

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

Описание
Информирует драйвер устройства о начале нового сеанса печати и о том, что все последующие вызовы функций StartPage и EndPage будут относиться к этому сеансу печати, пока не будет вызвана функция EndDoc. Это гарантирует, что при печати многостраничного документа процесс печати не будет прерываться другими сеансами. В Windows версии 3.1 и последующих версиях данная функция заменяет управляющую последовательность STARTDOC, посылаемую принтеру. Функция StartDoc не должна использоваться в метафайлах.
StartPage

int StartPage();

Описание
Данная функция вызывается для подготовки принтера к приему данных. Функция StartPage служит для замены управляющих последовательностей NEWFRAME и BANDINFO, посылаемых принтеру. Система делает недоступным вызов функции ResetDCмежду вызовами функций StartPage и EndPage.
TextOut

virtual BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount);
BOOL TextOut(int x, int y, const CString& st);

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

x - определяет горизонтальную координату исходной точки текста.
y - определяет вертикальную координату исходной точки текста.
lpszString - указатель на выводимую текстовую строку.
nCount - размер выводимой строки в байтах.
str - объект класса CString, содержащий выводимый текст.

Описание
Данная функция выводит текстовую строку в заданной позиции с использованием текущего шрифта. Под координатами текста понимается левый верхний угол ячейки текста. По умолчанию текущая позиция не используется или обновляется данной функцией. Если приложению необходимо обновить свою текущую позицию при вызове функции TextOut, оно должно предварительно вызвать функцию SetTextAlign, установив в ее аргументе nFlags флаг TA_UPDATECP. После установки данного флага Windows игнорирует значения аргументов x и y при последующих вызовах функции TextOut и производит вывод текста в текущей позиции.
CDialog
Класс CDialog является родительским классом для пользовательских классов, используемый для отображения диалоговых окон на экране. Диалоговые окна могут быть модальными и немодальный. Модальное диалоговое окно должно быть закрыто пользователем прежде, чем приложение сможет продолжить свою работу. Немодальное диалоговое окно допускает работу пользователя с приложением до своего закрытия и удаления с экрана.
Диалоговый объект является комбинацией шаблона диалога и одного из пользовательских классов, производных от класса CDialog. Для создания шаблона диалога и сохранения его в файле ресурсов обычно используется редактор диалога. Запуск мастера ClassWizard из окна редактора диалога позволяет создать соответствующий данному диалоговому окну класс, производный от класса CDialog.
Диалоговое окно, подобно любому другому окну, получает сообщения от Windows. Основным назначением объекта пользовательского класса диалога является обработка сообщений, поступающих от объектов классов элементов управления данного диалогового окна, при взаимодействии пользователя с соответствующими элементами управления. Мастер ClassWizard просматривает потенциальные сообщения, которые может послать каждый элемент управления данного диалогового окна, и предоставляет пользователю возможность выбора тех сообщений, которые он действительно собирается обрабатывать. После выбора пользователем обрабатываемых сообщений, мастер ClassWizard добавляет соответствующие макросы в карту сообщения и создает заготовки функций обработки для данных сообщений в пользовательском классе диалогового окна.
Все классы диалоговых окон, кроме самых простейших, содержат переменные для хранения информации, необходимой для работы с элементами управления диалогового окна. Мастер ClassWizard просматривает все классы элементов управления созданного пользователем диалогового окна и определяет, какие переменные могут понадобиться для работы с ними. Пользователь сам выбирает тип переменной и допустимый диапазон значений для каждой из создаваемых мастером переменных. После этого мастер ClassWizard добавляет описание соответствующих переменных в пользовательский класс диалога.
После закрытия своего диалогового окна мастер ClassWizard составляет карту данных, позволяющую осуществлять автоматический обмен данными между переменными объекта класса диалогового окна и объектами классов элементов управления данного окна. Карта данных содержит функции, инициализирующие элементы управления диалогового окна соответствующими значениями, получающие информацию, содержащуюся в этих объектах, и проверяющие правильность передаваемой информации.
Чтобы создавать модальное диалоговое окно, необходимо создать объект на стеке, используя конструктор пользовательского диалогового класса, присвоить его переменным исходные значения, а затем вызвать функцию DoModal, создающую окно диалога и его элементы управления. Чтобы создать немодальный диалог, вызовите в конструкторе вашего диалогового класса функцию Create.
Одним из способов создания диалогового окна является создание в памяти объекта структуры DLGTEMPLATE. Для этого, после создания указателя на объект класса CDialog вызовите функцию CreateIndirect для создания немодального диалогового окна, или вызовите функции InitModalIndirect и DoModal для создания модального диалогового окна.
Мастер ClassWizard помещает функции обмена и проверки правильности информации в функцию CWnd::DoDataExchange, которую он же и включает в класс пользовательского диалогового окна. Вызов данной функции обычно осуществляется в функции CWnd::UpdateData.
Приложение вызывает функцию UpdateData, когда пользователь нажимает кнопку OK, чтобы закрыть модальное диалоговое окно. (Данные не обновляются при нажатии кнопки Cancel (Отмена)).
Заданная по умолчанию реализация функции OnInitDialog вызывает функцию UpdateData, чтобы установить начальные значения переменных в объектах классов элементов управления. Обычно пользователь перегружает функцию OnInitDialogдля проведения нестандартных операций по инициализации объектов классов элементов управления. Функция OnInitDialog вызывается после создания всех объектов классов элементов управления в диалоговом окне и непосредственно перед отображением диалогового окна на экране.
Пользователь может вызывать функцию CWnd::UpdateData в любой функции класса модального или немодального диалогового окна.
Для установки цвета фона диалогового окна в приложении используется функция CWinApp::SetDialogBkColor.
Модальное диалоговое окно закрывается автоматически, когда пользователь нажимает кнопки OK или Cancel (Отмена) или когда программа непосредственно вызывает функцию EndDialog.
При создании класса немодального диалогового окна необходимо всегда перегружать функцию OnCancel и вызывать в ней функцию DestroyWindow. При этом не следует вызывать функцию базового класса CDialog::OnCancel, поскольку она вызывает функцию EndDialog, которая сделает данное диалоговое окно невидимым, но не уничтожит его класс. Кроме того, при создании классов немодальных диалоговых окон необходимо перегрузить функцию PostNcDestroy, добавив в него оператор delete this, поскольку немодальные диалоговые окна обычно создаются оператором new. Объекты классов модальных диалоговых окон обычно являются локальными объектами функций и не нуждаются в самоликвидации в перегруженной функцииPostNcDestroy.
Описание данного класса содержится в файле заголовка afxwin.h.
DoModal

virtual int DoModal();

Возвращаемое значение
Целочисленное значение, соответствующее значению аргумента nResult функции CDialog::EndDialog, которая использовалась для закрытия данного диалогового окна. Возвращаемое значение может быть -1, если функции не удалось создать данное диалоговое окно, или IDABORT, если при его создании возникла какая-либо другая ошибка.
Описание
Функция DoModal используется для отображения модального диалогового окна и возвращения результатов после его закрытия. Данная функция поддерживает интерфейс с пользователем при отображении диалогового окна. Она делает открытое ею диалоговое окно модальным, то есть перехватывает все обращения пользователя к приложению и реагирует только на обращения к элементам управления данного диалогового окна. Все остальные обращения пользователя игнорируются, кроме немаскируемого прерывания. Если пользователь нажимает в диалоговом окне кнопку OK или кнопку Cancel (Отмена), то вызываются соответствующие им функции обработки сообщений OnOK или OnCancel, закрывающие данное диалоговое окно. По умолчанию функция OnOK обновляет содержимое переменных в объекте класса диалогового окна, проверяет их правильность и закрывает диалоговое окно, возвращая величину IDOK, а функция OnCancel закрывает диалоговое окно без обновления значений переменных в данном объекте и возвращает величину IDCANCEL. Пользователь может перегружать эти функции. В настоящее время в стандартный процесс создания модального диалогового окна включена функция PreTranslateMessage.
CDocTemplate
CDocTemplate представляет собой абстрактный класс, определяет базисные функциональные возможности шаблонов документа. В функции CWinApp::InitInstance обычно создается один или несколько шаблонов документа, определяющих взаимодействие трех типов классов:

класса документа, являющегося потомком класса Cdocument;
класса представления, отображающего данные, хранящиеся в связанном с ним классе документа. Этот класс может быть потомком класса CViewCScrollViewCFormView или CEditView (класс CEditView может непосредственно использоваться в шаблонах документов);
класса окна, связанного с классом представления. Для однооконного приложения (SDI) базовым классом является класс CFrameWnd. Для многооконного приложения (MDI) базовым классом является класс CMDIChildWnd. Если приложение не использует нестандартные методы работы с окном, то в шаблоне документа может непосредственно использоваться класс CFrameWnd или CMDIChildWnd. В противном случае пользователю придется создать и использовать собственный класс, производный от одного из вышеперечисленных классов.

Приложение должно создавать по одному шаблону документа для каждого используемого в нем типа документа. Например, если приложение использует электронные таблицы и текстовые документы, оно должно иметь два объекта класса шаблона документа. Каждый шаблон документа ответственен за создание и управление всеми документами типа.
Шаблон документа сохраняет указатели на объекты класса CRuntimeClass, соответствующие классам документа, представления и окна. Эти объекты класса CRuntimeClass создаются при создании шаблона документа.
Шаблон документа содержит идентификаторы ресурсов, используемых совместно с данным типом документа (например, меню, значки или таблицы акселераторов). Шаблон документа также имеет строки, содержащие дополнительную информацию относительно типа документа. Они включают имя типа документа (например, "Рабочий лист") и расширение файла (например, ".xls"). Кроме того, шаблон документа может содержать другие строки, содержащие информацию, используемую интерфейсом пользователя приложения и диспетчером файлов Windows.
Если приложение является контейнером объектов OLE, шаблон документа содержит также идентификатор меню, используемого при работе с данным объектом. Если приложение является сервером объектов OLE, шаблон документа, кроме идентификатора меню, содержит идентификатор инструментальной панели. Для определения этих дополнительных ресурсов OLE используются функции SetContainerInfo и SetServerInfo.
Поскольку класс CDocTemplate является абстрактным классом, то с его объектами нельзя работать непосредственно. Типичное приложение использует один из двух производных от него классов, определенных в библиотеке MFC: CSingleDocTemplate, обеспечивающий работу однооконного приложения, и CMultiDocTemplate, обеспечивающий работу многооконного приложения.
Если создаваемое пользователем приложение требует парадигмы интерфейса пользователя, существенно отличающейся от SDI или MDI, ему необходимо создать свой собственный класс, производный от CDocTemplate.
Описание данного класса содержится в файле заголовка afxwin.h.