Уважаемые, никто не сталкивался с проблемой preview альбомной ориентации в Win9x?
Как известно, preview страницы создается в CPrintPreview::SetPage(), код такой:
// создаем dc принтера...
CEnhMetaFileDC dcMeta(dcPrinter, &rcMM);
m_pInfo->PrePrintPage(nPage, dcMeta); // здесь ::SaveDC()
m_pInfo->PrintPage(nPage, dcMeta); // здесь печать наших данных в HDC meta
m_pInfo->PostPrintPage(nPage, dcMeta); // здесь ::RestoreDC()
m_meta.Attach(dcMeta.Close()); // m_meta проигрывается в DoPaint()
} // end func()
так вот оказывается, что ::CreateEnhMetaFile() из конструктора CEnhMetaFileDC
в ОС Win9x для страниц альбомной ориентаци (dcPrinter — альбомное) создает портретный
dc метафайла (смотрим по ::GetDeviceCaps(dc, HORZRES)). То есть на вход даем rcMM
альбомный — получаем портретный dcMeta. Если сделать swap сторон rcMM, получаем
альбомный dcMeta. Но это же не метод ?!
А на платформе NT — все хорошо, создается альбомное dcMeta во всех случаях и красиво
рисуется.
Есть идеи по этому поводу? MSDN про различия платформ для ::CreateEnhMetafile()
скромно молчит.