Такой глюк, или может я чего не понял. Есть в ресурсах битмап. Его надо печатать. Печатаю, стандартными средствами: OnDraw(...), IsPrinting и т.д., т.е. просто копирую на контест. НЕ печатается... Т.е. в превью, всё замечательно, а когда на принтер, так чёрненький квадратик... такого же размера. Если у кого есть какие-нить соображения, плиз, просвятите, лучше мылом: Alf@tut.by Буду крайне признателен..
WBR: Alf
Здравствуйте Roman Ivanshko, Вы писали:
RI>Такой глюк, или может я чего не понял. Есть в ресурсах битмап. Его надо печатать. Печатаю, стандартными средствами: OnDraw(...), IsPrinting и т.д., т.е. просто копирую на контест. НЕ печатается... Т.е. в превью, всё замечательно, а когда на принтер, так чёрненький квадратик... такого же размера. Если у кого есть какие-нить соображения, плиз, просвятите, лучше мылом: Alf@tut.by Буду крайне признателен.. RI>WBR: Alf
Угу насчет кидания битмапов на DC принтера — энто всегда так. Енто только в KDE что рисуешь то и печатаешь — а тут тебе немножко (не боись — совсем немножко) повозится придется.
По моему личному опыту блиттинг битмапа на принтер когда вызываешь StretchBlt нормально работает только в вин2к — к примеру пример в составе WTL BmpView. Рекомендую
в остальных случаях см код от Microsoft. Drawdib вроде называется — не помню точно. Этот пример еще в VC 1.0 был, есть и сейчас я думаю — поправьте ежели не так
что бы размер был соразмерен размеру страницы принтера надо сначала сделать — надеюсь ты это помнишь
if(pDC->IsPrinting())
{
int cxPage = pDC->GetDeviceCaps(HORZRES);
int cyPage = pDC->GetDeviceCaps(VERTRES);
Здравствуйте Roman Ivanshko, Вы писали:
RI>Такой глюк, или может я чего не понял. Есть в ресурсах битмап. Его надо печатать. Печатаю, стандартными средствами: OnDraw(...), IsPrinting и т.д., т.е. просто копирую на контест. НЕ печатается... Т.е. в превью, всё замечательно, а когда на принтер, так чёрненький квадратик... такого же размера. Если у кого есть какие-нить соображения, плиз, просвятите, лучше мылом: Alf@tut.by Буду крайне признателен.. RI>WBR: Alf
Ну да — широко известная фича с принтерами Ж-)
SetDibBitsToDevice()....
Ну и с DIB придеться повозиться — см MSDN
Здравствуйте Юнусов Булат, Вы писали:
ЮБ>Здравствуйте Roman Ivanshko, Вы писали:
RI>>Такой глюк, или может я чего не понял. Есть в ресурсах битмап. Его надо печатать. Печатаю, стандартными средствами: OnDraw(...), IsPrinting и т.д., т.е. просто копирую на контест. НЕ печатается... Т.е. в превью, всё замечательно, а когда на принтер, так чёрненький квадратик... такого же размера. Если у кого есть какие-нить соображения, плиз, просвятите, лучше мылом: Alf@tut.by Буду крайне признателен.. RI>>WBR: Alf
ЮБ>Угу насчет кидания битмапов на DC принтера — энто всегда так. Енто только в KDE что рисуешь то и печатаешь — а тут тебе немножко (не боись — совсем немножко) повозится придется.
ЮБ>По моему личному опыту блиттинг битмапа на принтер когда вызываешь StretchBlt нормально работает только в вин2к — к примеру пример в составе WTL BmpView. Рекомендую
ЮБ>в остальных случаях см код от Microsoft. Drawdib вроде называется — не помню точно. Этот пример еще в VC 1.0 был, есть и сейчас я думаю — поправьте ежели не так
ЮБ>что бы размер был соразмерен размеру страницы принтера надо сначала сделать — надеюсь ты это помнишь
ЮБ> if(pDC->IsPrinting()) ЮБ> { ЮБ> int cxPage = pDC->GetDeviceCaps(HORZRES); ЮБ> int cyPage = pDC->GetDeviceCaps(VERTRES);
ЮБ>и прочее и прочее
Ок. Сенкс. Поюзал CDib, из MSDN, заработало. Кстати, не BitBlt не StretchBlt, стандартными путями не работали, у меня XP...
Здравствуйте Roman Ivanshko, Вы писали:
RI>Ок. Сенкс. Поюзал CDib, из MSDN, заработало. Кстати, не BitBlt не StretchBlt, стандартными путями не работали, у меня XP...
И в Линолеуме тоже не работает
только в вин2к
почему — сам не знаю :)
легко проверить — в составе WTL пример BmpView кидает битмап на dc принтера через StretchBlt
я специально с откомпилированным файлом все компы на работе обошел — та же история
может кто знает почему так — или верить только собственному опыту?