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

UptoLike

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

3. Рассмотреть механизм чтения и записи растровых изображений. В
программе ClipBoard содержится пример передачи посредством буфера обмена
растрового изображения. Эта часть программы начинается с захвата текущего
содержимого экрана, которое передается в буфер обмена в виде растрового
изображения. На рис. 4.1 показаны окно программы ClipBoard после
выполнения операции захвата экрана.
Рис. 4.1. Захват растрового изображения
Запись растрового изображения. Процесс передачи изображения в
буфер обмена начинается с создания в памяти совместимого контекста
устройства hdcMem. Затем происходит создание и выбор (также в памяти)
совместимого растрового изображения.
hdc = GetDC( hwnd ) ;
hdcMem = CreateCompatibleDC( hdc );
hBitmap = CreateCompatibleBitmap( hdc, 640, 480 );
SelectObject( hdcMem, hBitmap ) ;
Далее происходит копирование изображения из источника (в нашем
случае - с экрана) в контекст памяти. Затем вызывается функция
TransferToClipboard, которая, собственно, и осуществляет запись в буфер.
StretchBlt( hdcMem, 0, 0, 639, 479,
36
     3. Рассмотреть механизм чтения и записи растровых изображений. В
программе ClipBoard содержится пример передачи посредством буфера обмена
растрового изображения. Эта часть программы начинается с захвата текущего
содержимого экрана, которое передается в буфер обмена в виде растрового
изображения. На рис. 4.1 показаны окно программы ClipBoard          после
выполнения операции захвата экрана.




Рис. 4.1. Захват растрового изображения

     Запись растрового изображения. Процесс передачи изображения в
буфер обмена начинается с создания в памяти совместимого контекста
устройства hdcMem. Затем происходит создание и выбор (также в памяти)
совместимого растрового изображения.

     hdc = GetDC( hwnd ) ;
     hdcMem = CreateCompatibleDC( hdc );
     hBitmap = CreateCompatibleBitmap( hdc, 640, 480 );
     SelectObject( hdcMem, hBitmap ) ;

      Далее происходит копирование изображения из источника (в нашем
случае - с экрана) в контекст памяти. Затем вызывается функция
TransferToClipboard, которая, собственно, и осуществляет запись в буфер.

     StretchBlt( hdcMem, 0, 0, 639, 479,

                                       36