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