Вот пример кода, который прекрасно рисует на экране, но абсолютно отказывается печатать на принтере (за исключением рамки прямоугольника).
CTestView::OnDraw(...)
{
// Я создал кисть на основе растровой картинки
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_ ...);
CBrush m_brush;
m_brush.CreatePatternBrush(&m_bitmap);
// Выбрал ее в контекст устройства в функции OnDraw()
CBrush * pSysBrush = pDC->SelectObject(&m_brush);