Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »