Re: окончательно запутался в печати...help
От: KEV  
Дата: 02.10.03 11:01
Оценка:
Здравствуйте, Lapyx, Вы писали:

L>требуется напечать экран


L>перерыл весь форум, нашел много тем по данному вопросу...

L>но сколько не пыталься делать..ниче невыходит...
L>к тому же запутался с контекстами и битмапами..кого куда зачем..
L>памагите разложить все по полочкам с самого начала....

HDC hScrDC, hMemDC; //экранный DC и в памяти DC
HBITMAP hOldBitmap, hBitmap; //указатель на зависящий битмап

hScrDC = ::GetWindowDC(hWnd); //HWND нужного окна
hMemDC = CreateCompatibleDC(hScrDC); //DC в памяти

CRect m_rect;
::GetWindowRect(hWnd, m_rect);
int m_h = m_rect.Width();
int m_v = m_rect.Height();

hBitmap = CreateCompatibleBitmap(hScrDC, m_h, m_v); //готовим битмап
hOldBitmap = (HBITMAP) SelectObject(hMemDC, hBitmap); //битмап в памяти

BitBlt(hMemDC, 0, 0, m_h, m_v, hScrDC, 0, 0, SRCCOPY);

hBitmap = (HBITMAP) SelectObject(hMemDC, hOldBitmap); //забираем битмап экрана
DeleteDC(hScrDC); //все чистим
DeleteDC(hMemDC);

енто твой HBITMAP
Можно распечатать его, можно из него сделать какой-нибуть класс
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.