Проблема с копированием графического контекста

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
vadim_vk
Сообщения: 1
Зарегистрирован: 15 мар 2004, 15:06
Откуда: SPB, Russia

15 мар 2004, 15:08

Посоветуйте, пожалуйста - что здесь неправильно.
Создаем графический контекст на основе имеющегося.
Рисуем в нем линию, копируем контекст обратно в исходный.
Ничего не рисуется в итоге.
Почему ?

void
CMyView
::OnDraw( CDC* pDC ) {
CDC memDC;
memDC.CreateCompatibleDC( pDC );
memDC.MoveTo( 0, 0 );
memDC.LineTo( 200, 200 );
pDC->BitBlt( 0, 0, 200, 200, &memDC, 0, 0, SRCCOPY );
}
Hawk
Сообщения: 215
Зарегистрирован: 17 фев 2004, 14:52
Откуда: СПб
Контактная информация:

18 мар 2004, 15:42

По умолчания графический контекст создается размером 1X1 писксель (или даже 0X0 ну не важно). Для определения его размеров необходимо селектнуть туда битмапину -

Код: Выделить всё

void 
CMyView 
::OnDraw( CDC* pDC ) { 
CDC memDC; 
CBitmap bmp;
memDC.CreateCompatibleDC( pDC ); 
bmp.CreateCompetibleBitmap( pDC, 200, 200) // размер DC будет 100 X 100
memDC.SelectObject(bmp);
memDC.MoveTo( 0, 0 ); 
memDC.LineTo( 200, 200 ); 
pDC->BitBlt( 0, 0, 200, 200, &memDC, 0, 0, SRCCOPY ); 
}
Ответить