Операционные системы. Марапулец Ю.В. - 38 стр.

UptoLike

Составители: 

Для передачи метафайла посредством буфера обмена применяется
структура METAFILEPICT,
в которой записываются режим отображения,
информация о размерах, а также сам сценарий метафайла.
Структура METAFILEPICT
определена в файле WinGDI.H:
typedef struct tagMETAFILEPICT
{
LONG mm;
LONG xExt;
LONG yExt;
HMETAFILE hMF;
}
METAFILEPICT, FAR *LPMETAFILEPICT;
Поле mm содержит идентификатор режима отображения. Поле hMF
представляет собой дескриптор набора команд метафайла. Остальные два поля,
xExt и yExt, могут содержать два разных типа информации в зависимости от
режима отображения.
Для текстового и декартовых режимов в полях xExt и yExt задаются
размеры содержащегося в метафайле изображения по горизонтали и по
вертикали, в единицах, которые соответствуют режиму отображения.
При использовании изотропного и анизотропного режимов отображения
поля xExt и yExt содержат необязательные, рекомендуемые размеры,
выраженные в единицах MM_HIMETRIC.
Если рекомендуемые размеры не
указываются, эти поля могут содержать нулевые значения. Если же поля xExt и
yExt имеют отрицательные значения, значит, они представляют соотношения
размеров, а не абсолютные размеры.
Функция DrawMetafile создает метафайл в памяти и после создания
метафайла следующий шаг заключается в формировании структуры
METAFILEPICT
в памяти и получении с помощью функции GlobalLock ее
указателя lpMFP:
hGMem = GlobalAlloc( GHND, (DWORD) sizeof( METAFILEPICT ) ) ;
lpMFP = (LPMETAFILEPICT) GlobalLock( hGMem ) ;
Теперь можно задать соответствующий режим отображения, размеры
изображения и назначить дескриптор метафайла.
lpMFP->mm = MM_ISOTROPIC;
lpMFP->xExt = 200; // рекомендуемые размеры //
lpMFP->yExt = 200; // в единицах MM_HIMETRIC //
lpMFP->hMF = hMetaFile;
38
     Для передачи метафайла посредством буфера обмена применяется
структура METAFILEPICT, в которой записываются режим отображения,
информация о размерах, а также сам сценарий метафайла.
     Структура METAFILEPICT определена в файле WinGDI.H:

typedef struct tagMETAFILEPICT
{
      LONG mm;
      LONG xExt;
      LONG yExt;
      HMETAFILE hMF;
}
METAFILEPICT, FAR *LPMETAFILEPICT;

      Поле mm содержит идентификатор режима отображения. Поле hMF
представляет собой дескриптор набора команд метафайла. Остальные два поля,
xExt и yExt, могут содержать два разных типа информации в зависимости от
режима отображения.
      Для текстового и декартовых режимов в полях xExt и yExt задаются
размеры содержащегося в метафайле изображения по горизонтали и по
вертикали, в единицах, которые соответствуют режиму отображения.
      При использовании изотропного и анизотропного режимов отображения
поля xExt и yExt содержат необязательные, рекомендуемые размеры,
выраженные в единицах MM_HIMETRIC. Если рекомендуемые размеры не
указываются, эти поля могут содержать нулевые значения. Если же поля xExt и
yExt имеют отрицательные значения, значит, они представляют соотношения
размеров, а не абсолютные размеры.
      Функция DrawMetafile создает метафайл в памяти и после создания
метафайла следующий шаг заключается в формировании структуры
METAFILEPICT в памяти и получении с помощью функции GlobalLock ее
указателя lpMFP:

     hGMem = GlobalAlloc( GHND, (DWORD) sizeof( METAFILEPICT ) ) ;
     lpMFP = (LPMETAFILEPICT) GlobalLock( hGMem ) ;

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

     lpMFP->mm = MM_ISOTROPIC;
     lpMFP->xExt = 200;    // рекомендуемые размеры //
     lpMFP->yExt = 200;    // в единицах MM_HIMETRIC //
     lpMFP->hMF = hMetaFile;



                                    38