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

UptoLike

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

hdc, 0, 0, 639, 479, SRCCOPY );
TransferToClipboard( hwnd, hBitmap, CE_BITMAP );
DeleteDC( hdcMem );
Наконец, контекст устройства удаляется из памяти, а право на владение
растровым изображением передается буферу обмена.
Чтение растрового изображения. Аналогичным образом происходит и
чтение растрового изображения из буфера обмена. Процесс начинается с
открытия буфера и чтения из него дескриптора растрового изображения:
OpenClipboard( hwnd );
hBitmap = GetClipboardData ( CF_BITMAP ) ;
hdcMem = CreateCompatibleDC ( hdc );
SelectObject( hdcMem, hBitmap );
Опять-таки, необходим совместимый контекст устройства. Затем
функция SelectObject загружает в него изображение.
Параллельно с описанными выполняются еще несколько задач. Во-
первых, в контексте памяти необходимо задать режим отображения,
совместимый с контекстом дисплея. Во-вторых, перед тем как изображение
будет скопировано, нужно определить его размер. Размер изображения можно
получить путем копирования его заголовка в локальную переменную bm:
SetMapMode(hdcMem,.GetMapMode( hdc ) );
GetObject( hBitmap, sizeof(BITMAP), (LPSTR) &bm );
Далее изображение с помощью функции BitBlt копируется из контекста
памяти в контекст устройства:
BitBlt( hdc, 0, 0, bm.bmWtdth, bm.bmHeight,
hdcMem, 0, 0, SRCCOPY );
ReleaseDC( hwnd, hdc );
DeleteDC( hdcMem );
CloseClipboard();
Осталось только очистить буфер обмена перед его закрытием, и задача
будет выполнена.
4. Рассмотреть механизм чтения и записи метафайлов.
Запись метафайла. В текстовом и декартовых режимах отображения
масштаб является фиксированным. Изотропный и анизотропный режимы
требуют наличия специальной информации, сопровождающей команды
метафайла.
37
              hdc, 0, 0, 639, 479, SRCCOPY );
     TransferToClipboard( hwnd, hBitmap, CE_BITMAP );
     DeleteDC( hdcMem );


     Наконец, контекст устройства удаляется из памяти, а право на владение
растровым изображением передается буферу обмена.
     Чтение растрового изображения. Аналогичным образом происходит и
чтение растрового изображения из буфера обмена. Процесс начинается с
открытия буфера и чтения из него дескриптора растрового изображения:

     OpenClipboard( hwnd );
     hBitmap = GetClipboardData ( CF_BITMAP ) ;
     hdcMem = CreateCompatibleDC ( hdc );
     SelectObject( hdcMem, hBitmap );

     Опять-таки, необходим совместимый контекст устройства. Затем
функция SelectObject загружает в него изображение.
     Параллельно с описанными выполняются еще несколько задач. Во-
первых, в контексте памяти необходимо задать режим отображения,
совместимый с контекстом дисплея. Во-вторых, перед тем как изображение
будет скопировано, нужно определить его размер. Размер изображения можно
получить путем копирования его заголовка в локальную переменную bm:

     SetMapMode(hdcMem,.GetMapMode( hdc ) );
     GetObject( hBitmap, sizeof(BITMAP), (LPSTR) &bm );

     Далее изображение с помощью функции BitBlt копируется из контекста
памяти в контекст устройства:

     BitBlt( hdc, 0, 0, bm.bmWtdth, bm.bmHeight,
           hdcMem, 0, 0, SRCCOPY );
     ReleaseDC( hwnd, hdc );
     DeleteDC( hdcMem );
     CloseClipboard();

      Осталось только очистить буфер обмена перед его закрытием, и задача
будет выполнена.
      4. Рассмотреть механизм чтения и записи метафайлов.
      Запись метафайла. В текстовом и декартовых режимах отображения
масштаб является фиксированным. Изотропный и анизотропный режимы
требуют наличия специальной информации, сопровождающей команды
метафайла.


                                     37