Re[2]: Печать в WTL - проблемы preview в Win9x
От: kliff Россия http://www.esignal.ru
Дата: 23.08.04 17:28
Оценка:
Здравствуйте, 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х не работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.