Страница 7 из 40 HDC GetSafeHdc() const; Возвращаемое значение Дескриптор контекста устройства. Описание Данная функция позволяет получить контекст устройств вывода m_hDC. Эта функция может работать с нулевыми указателями. CSize GetTextExtent(LPCTSTR lpszString, int nCount) const; CSize GetTextExtent(const CString& str) const; Возвращаемое значение Размер строки (в логических единицах) записанный в объект класса CSize. Аргументы "sectiontableheader"lpszString - указатель на символьную строку. В качестве данного аргумента может также выступать объект класса CString. "sectiontableheader"nCount - определяет количество символов в строке. "sectiontableheader"str - объект класса CString содержащий измеряемую строку. Описание Данная функция позволяет определить ширину и высоту строки символов при выводе ее установленным в настоящее время шрифтом. Информация извлекается из переменной m_hAttribDC данного контекста устройства. Установки текущей области отсечки не влияют на возвращаемые функцией GetTextExtent значения. Поскольку некоторые устройства не помещают символы строки в последовательный массив ячеек (уменьшают апрош в характерных сочетаниях пар знаков) сумма размеров отдельных символов в строке может не совпадать с размером всей строки. BOOL IsPrinting() const; Возвращаемое значение Ненулевое, если данный объект класса CDC является объектом класса контекста устройства принтера, и нулевое в противном случае. Описание Данная функция позволяет определить, для чего будет использоваться контекст устройства. BOOL Rectangle(int x1, int y1, int x2, int y2); BOOL Rectangle(LPCRECT lpRect); Возвращаемое значение Ненулевое, в случае успешного завершения функции, и нулевое в противном случае. Аргументы "sectiontableheader"x1 - определяет горизонтальную координату левого верхнего угла прямоугольника (в логических единицах). "sectiontableheader"y1 - определяет вертикальную координату левого верхнего угла прямоугольника (в логических единицах). "sectiontableheader"x2 - определяет горизонтальную координату правого нижнего угла прямоугольника (в логических единицах). "sectiontableheader"y2 - определяет вертикальную координату правого нижнего угла прямоугольника (в логических единицах). "sectiontableheader"lpRect - определяет прямоугольник в логических единицах. В качестве данного аргумента может выступать как объект класса CRect, так и указатель на объект структуры RECT. Описание Рисует прямоугольник, используя текущее перо. Внутренняя поверхность прямоугольника заполняется текущей кистью. Прямоугольник доходит до, но не включает свои правые и нижние координаты. Это означает, что высота прямоугольника составляет y2 - y1, а его ширина составляет x2 - x1. Как высота, так и ширина прямоугольника должны составлять больше 2 и меньше 32 767 логических единиц. virtual int SelectClipRgn(CRgn* pRgn); int SelectClipRgn(CRgn* pRgn, int nMode); Возвращаемое значение Тип области. Может принимать одно из следующих значений: "sectiontableheader"COMPLEXREGION - новая область отсечки имеет перекрывающиеся границы; "sectiontableheader"ERROR - используется недопустимый контекст устройства или недопустимая область; "sectiontableheader"NULLREGION - создана пустая область отсечки; "sectiontableheader"SIMPLEREGION - новая область отсечки не имеет перекрывающихся границ. Аргументы "sectiontableheader"pRgn - указатель на выбранную область. "sectiontableheader"В первой версии функции SelectClipRgn нулевое значение данного аргумента означает, что выбирается вся рабочая область окна, а область отсечки совпадает с границами окна. "sectiontableheader"Во второй версии функции SelectClipRgn данный аргумент может принимать нулевое значение только в режиме RGN_COPY. "sectiontableheader"nMode - определяет выполняемую операцию. Может принимать одно из следующих значений: "sectiontableheader"RGN_AND - новая область отсечки представляет собой пересечение текущей области отсечки и области, определенной в аргументе pRgn; "sectiontableheader"RGN_COPY - новая область отсечки полностью совпадает с областью, заданной в аргументе pRgn. В этом случае данная функция идентична своей первой версии, однако, если аргумент pRgn в данной версии равен нулю, то в качестве новой области отсечки принимается область отсечки по умолчанию (нулевая область); "sectiontableheader"RGN_DIFF - новая область отсечки представляет собой текущую область отсечки, из которой исключены области, перекрывающиеся с областью, заданной в аргументе pRgn; "sectiontableheader"RGN_OR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn; "sectiontableheader"RGN_XOR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn, за исключением областей их пересечения. Описание Выбирает указанную область как новую область отсечки для данного контекста устройства. Используется копия указанной области. Сама область может использоваться в неограниченном количестве объектов класса контекста устройств или может быть удалена. Функция предполагает, что координаты указанной области заданы в единицах устройства. Некоторые принтеры поддерживают в текстовом режиме более высокое разрешение, чем в графическом, для поддержания разрешения, необходимого для задания параметров шрифтов. В этих устройствах при запросе его разрешения сообщаются величины, используемые в режиме высокого разрешения, то есть в текстовом режиме. После этого в данных устройствах производится перерасчет координат графических объектов таким образом, чтобы несколько точек, заданных с высоким разрешением, отображались в одной точке, выводимой с графическим разрешением. При использовании режима вывода текста необходимо всегда вызывать функцию SelectClipRgn. Приложения, использующие масштабирование графических объектов при выводе их с использованием функций GDI должны использовать функцию GETSCALINGFACTOR, позволяющую определить параметры масштабирования данного принтера. Использование неправильного параметра масштабирования может привести к обрезанию выводимой информации. При использовании области для задания области отсечки графических объектов GDI делит полученные координаты на величину параметра масштабирования. При использовании области для задания области отсечки текста, такого преобразования координат не производится. Параметр масштабирования равный 1 приводит к делению координат на 2, а параметр масштабирования равный 2 приводит к делению координат на 4, и так далее. 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. Ее возвращаемая величина может принимать следующие значения: "sectiontableheader"COMPLEXREGION - новая область отсечки имеет пересекающиеся границы; "sectiontableheader"ERROR - ошибка при задании контекста устройства или недопустимая область отсечки; "sectiontableheader"NULLREGION - новая область отсечки представляет собой пустую область; "sectiontableheader"SIMPLEREGION - новая область отсечки не имеет пересекающихся границ. Аргументы "sectiontableheader"pPen - указатель на объект класса CPen. "sectiontableheader"pBrush - указатель на объект класса CBrush. "sectiontableheader"pFont - указатель на объект класса CFont. "sectiontableheader"pBitmap - указатель на объект класса CBitmap. "sectiontableheader"pRgn - указатель на объект класса CRgn. Описание Выбирает объект класса в контекст устройства. Класс CDC содержит пять версий данной функции, отличающихся типом аргумента и возвращаемого значения. В качестве аргументов данной функции могут выступать объекты классов пера, кисти, шрифта, битового образа и области. Выбранный в контекст объект замещает соответствующий объект в контексте устройства. Например, если аргумент pObject обобщенной версии данной функции указывает на объект класса CPen, то данная функция замещает в данном контексте устройства текущее перо на перо, указанной в аргументе pObject. Приложение может выбирать битовый образ только в контекст устройства памяти и этот битовый образ не может быть выбран одновременно в два и более контекстов устройства памяти. Формат битового образа должен быть монохромным или совместимым с контекстом данного устройства. В противном случае функция SelectObject возвращает ошибку. В версии Windows 3.1 и более поздних версиях функция SelectObject возвращает ту же самую величину независимо от того, используется ли она в метафайлах или нет. В предыдущих версиях данная функция при вызове ее в метафайлах возвращала ненулевое значение в случае своего успешного завершения, и нулевое значение в противном случае. |