Возвращаемое значение |
int. Число установленных строк развертки. В случае возникновения ошибки возвращаемое значение — 0. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
CreateDIBitmap, GetDIBits, SetDIBits, StretchDIBits |
|||||||
Пример |
В следующем примере (рис. 13.15) при обработке сообщения WM_CREATE загружаются изображение DIB и входы палитры. После получения сообщения WM_PAINT происходит вывод изображения DIB обычных размеров с использованием функции SetDIBitsToDevice и вывод изображения с размерами, составляющими 200% отобычных размеров, с помощью функции StretchDIBits. |
|||||||
SetEnhMetaFilleBits • Windows 98 • Windows 2000* |
||||||||
Описание |
Функция SetEnhMetaFileBits позволяет создать в памяти расширенный метафайл из указанных данных. Если в приложении больше не нужен дескриптор расширенного метафайла, этот дескриптор должен быть удален путем вызова функции DeleteEnhMetaFile. Указанная функция не может применяться с данными метафайла в формате Windows 3.x. Для таких метафайлов должна применяться функция SetWinMetaFileBits. |
|||||||
Синтаксис |
HENHMETAFILE SetEnhMetaFileBits( UINT cbBuffer, CONST BYTE* IpData ) |
|||||||
Параметры cbBuffer |
UINT. Размер в байтах данных, указанных параметром IpData. |
|||||||
lpData |
CONST BYTE*. Указатель на буфер, который содержит данные расширен ного метафайла. Данные должны быть представлены в том же формате, в ка ком они были получены из функции GetEnhMetaFileBits. |
|||||||
Возвращаемое значение |
HENHMETAFILE. Дескриптор расширенного метафайла, записанного в память. В случае возникновения ошибки возвращаемое значение — NULL. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
GetEnhMetaFileBits, DeleteEnhMetaFile |
|||||||
Пример |
См. пример для функции GetEnhMetaFileBits. |
|||||||
SetMetaRgn • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция SetMetaRgn позволяет определить пересечение текущей областт отсечения контекста устройства (определенную пересечением его обласп отсечения и метаобласти) с текущей метаобластью и сохранить результс рующую область в качестве новой метаобласти для контекста устройств Область отсечения переустанавливается на пустую область. Перед вызово этой функции в приложении необходимо сохранить контекст устройства помощью функции SaveDC. |
|||||||
Синтаксис |
int SetMetaRgn( HDC hDC) |
|||||||
Параметры hDC |
HDC. Контекст устройства, для которого необходимо установить метаоб ласть. |
|||||||
Возвращаемое значение |
int. В случае успешного выполнения — новая структура области отсеченш Она может иметь любое из значений, перечисленных в табл. 13.20. |
|||||||
Таблица 13.20. Возвращаемые значения функции SetMetaRgn |
||||||||
Значение |
Описание |
|||||||
COMPLEXREGION |
Область состоит из нескольких прямоугольных областей. |
|||||||
ERROR |
Произошла ошибка (предыдущая область отсечения не затронута). |
|||||||
NULLREGION |
Область пуста. |
|||||||
SIMPLEREGION |
Область состоит из одного прямоугольника. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
GetMetaRgn, SelectClipRgn |
|||||||
Пример |
В следующем примере функции GetMetaRgn и SetMetaRgn применяются для изменения метаобласти во время вывода метафайла. Когда пользователь выбирает пункт меню Test!, размер декремента увеличивается на 10 единиц длины в горизонтальном и вертикальном направлениях. В результате, когда пользователь выбирает пункт меню Test!, метафайл каждый раз масштабируется в меньшую сторону на 10 единиц длины. |
|||||||
См. \local-aources\chapl3\13-26. txt |
||||||||
SetStretchBltMode • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция SetStretchBltMode устанавливает режим растяжения растрового изображения для контекста устройства. Режим растяжения определяет, как будет происходить удаление пикселей при уменьшении размеров растрового изображения. При увеличение размеров растрового изображения просто происходит добавление соответствующих пикселей между существующими. Режим растяжения становится свойством контекста устройства и остается в силе до тех пор, пока не будет удален контекст устройства или установлен новый режим растяжения. Выбор наиболее благоприятного режима растяжения зависит от вида сжимаемого растрового изображения. Изображения с несколькими тонкими линиями будут обрабатываться наиболее эффективно в режиме STRETCH_ANDSCANS. Изображения с несколькими жирными линиями будут обрабатываться более эффективно в режиме STRETCH_ORSCANS. Для обычных цветных изображений можно использовать режим STRETCH_DELETESCANS. |
|||||||
Синтаксис |
int SetStretchBHMode( HDC hDC, int nStretchMode ) |
|||||||
Параметры hDC |
HDC. Обозначает контекст устройства. |
|||||||
nStretchMode |
int. Новый режим растяжения. Этот параметр может иметь одно из значений, перечисленных в табл. 13.21. |
|||||||
Таблица 13.21. Значения параметра nStretchMode функции SetStretchBltMode |
||||||||
Значение |
Описание |
|||||||
STRETCH_ANDSCANS |
Выполнить логическую операцию AND с использованием значений цвета для удаленных и существующих пикселей. Если растровое изображение представляет собой монохромное растровое изображение, этот режим сохраняет черные пиксели за счет белых пикселей. Это значение определено также как BLACKONWHITE. |
|||||||
STRETCH_DELETESCANS |
Удалить пиксели. Этот режим предусматривает уничтожение всех удаленных строк пикселей без попыток сохранить их информацию. Это значение определено также как COLORONCOLOR. |
|||||||
STRETCH_HALFTONE |
Отобразить пиксели из прямоугольной области источника в блоки пикселей прямоугольной области назначения. Среднее значение цвета по всему блоку пикселей назначения аппроксимирует цвет пикселей источника. Это значение определено также как HALFTONE. После настройки режима растяжения STRETCH_HALFTONE в приложении необходимо вызвать функцию SetBrushOrgEx для установки начала координат кисти; в ином случае возникает ошибка, связанная с неправильным выравниванием кисти |
|||||||
STRETCH_ORSCANS |
Выполнить логическую операцию OR с использованием значений цвета для удаленных и существующих пикселей. Если растровое изображение представляет собой монохромное растровое изображение, этот режим сохраняет белые пиксели за счет черных пикселей. Это значение определено также как WHITEONBLACK. |
|||||||
Возвращаемое значение |
int. В случае успешного выполнения — предыдущий режим растяжения; в ином случае возвращаемое значение — 0. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
GetStretchBltMode, StretchBIt |
|||||||
Пример |
См. пример для функции StretchBIt. |
|||||||
SetWinMetaFileBits • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция SetWinMetaFileBits позволяет преобразовать метафайл из crapoi формата Windows 3.x в новый расширенный формат. Когда в приложени исчезает необходимость в использовании дескриптора расширенного мет) файла, его необходимо удалить путем вызова функции DeleteEnhMetaFil Если справочный контекст устройства не совпадает с тем контекстом уст ройства, в котором был первоначально создан метафайл, некоторые фу1 кции GDI, в которых применяются единицы длины устройства, вывод) это изображение неправильно. |
|||||||
Синтаксис |
HENHMETAFILE SetWinMetaFileBits( UINT cbBuffer, CONST BYTE IpbBuffer, HDC hDCRef, CONST METAFILEPICT* Ipmfr ) |
|||||||
Параметры |
||||||||
cbBuffer |
UINT. Размер в байтах буфера, который содержит метафайл Windows 3.x |
|||||||
IpbBuffer |
CONST BYTE*. Указатель на буфер, который содержит данные метафа{ ла Windows 3.x. Эти данные должны быть представлены в формате, возвр. щенном функцией GetWinMetaFileBits. |
|||||||
hDCRef |
HDC. Справочный контекст устройства. |
|||||||
Ipmfp |
CONST METAFILEPICT*. Указатель на структуру METAFILEPICT, котора содержит предложенный размер изображения метафайла и режим отобрг жения, который использовался при создании изображения. Определен» структуры METAFILEPICT приведено ниже. |
|||||||
Возвращаемое значение |
HENHMETAFILE. В случае успешного выполнения функции возвращав мое значение — дескриптор расширенного метафайла, записанного в па мять; в ином случае возвращаемое значение — NULL. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
GetWinMetaFileBits, DeleteEnhMetaFile |
|||||||
Определение METAFILEPICTtypedef struct tagMETAFILEPICT { LONG mm; LONG xExt; LONG yExt; HMETAFILE hMF; } METAFILEPICT; |
||||||||
Члены mm |
LONG. Режим отображения, в котором выведено изображение. Перечень допустимых режимов отображения приведен в табл. 12.24 главы 12. |
|||||||
xExt |
LONG. Ширина метафайла изображения для всех режимов, за исключением MM_ISOTROPIC и MM_ANISOTROPIC. Для этих режимов предложенный размер содержит параметр xExt. |
|||||||
yExt |
LONG. Высота метафайла изображения для всех режимов, за исключением MM_ISOTROPIC и MM_ANISOTROPIC. Для этих режимов предложенный размер содержит параметр yExt. |
|||||||
hMF |
HMETAFILE. Метафайл памяти. |
|||||||
Пример |
В следующем примере, когда пользователь выбирает пункт меню Test!, метафайл sample.wmf формата Windows 3.x преобразовывается в формат расширенного метафайла с использованием функции SetWinMetaFileBits. Метафайл Windows 3.x был сохранен в файле sample.wmf с помощью предыдущего вызова функции CopyMetaFile. |
|||||||
См. \local-sources\chapl3\13-27.txt |
||||||||
StretchBIt • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция StretchBIt позволяет копировать растровое изображение из прямоугольной области источника в прямоугольную область назначения, в случае необходимости растягивая или сжимая растровое изображение согласно режиму растяжения в соответствии с размерами прямоугольной области назначения. Изображение можно перевернуть вдоль горизонтальной или вертикальной оси, используя разные знаки (положительный и отрицательный) для параметров ширины или высоты источника и назначения. Эта функция может применяться для окон, имеющих переменный размер, когда возникает необходимость увеличивать или уменьшать растровые изображения в зависимости от размеров окна. При значительном увеличении размеров растровых изображений в них могут появляться зубчатые контуры. Для больших изображений следует применять метафайлы. |
|||||||
Синтаксис |
BOOL StretchBlt( HDC hDCDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hDCSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop ) |
|||||||
Параметры hDCDest |
HDC. Контекст устройства назначения. |
|||||||
nXOriginDest |
int. Координата х левого верхнего угла прямоугольной области назначения (в логических единицах длины). |
|||||||
nYOriginDest |
int. Координата у левого верхнего угла прямоугольной области назначения (в логических единицах длины). |
|||||||
nWidthDest |
int. Ширина прямоугольной области назначения (в логических единицах длины). |
|||||||
nHeightDest |
int. Высота прямоугольной области назначения (в логических единица; длины). |
|||||||
hDCSrc |
HDC. Исходный контекст устройства. |
|||||||
nXOriginSrc |
int. Координата х левого верхнего угла прямоугольной области источник; (в логических единицах длины). |
|||||||
nYOriginSrc |
int. Координата у левого верхнего угла прямоугольной области источни] (в логических единицах длины). |
|||||||
nWdthSrc |
int. Ширина прямоугольной области источника (в логических единице длины). |
|||||||
nHeightSrc dwRop |
int. Высота прямоугольной области источника (в логических единицах длины) DWORD. Растровая операция, которая должна быть выполнена. Коды растровых операций перечислены в табл. 13.2. |
|||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
SetStretchBltMode. GetDeviceCaps, BitBlt |
|||||||
Пример |
В примере, показанном на рис. 13.16, растровое изображение увеличивается до размеров клиентской области с использованием функции StretchBlt, когда пользователь выбирает пункт меню Test!. |
|||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.