Форум программистов, компьютерный форум CyberForum.ru

Проблема с выводом bitmap-ов на принтер... - C++

Войти
Регистрация
Восстановить пароль
 
CardsOuter
Сообщений: n/a
18.03.2009, 14:15     Проблема с выводом bitmap-ов на принтер... #1
Вобчем, дело такое.
берем любой экранный DC
например форму.
берем любой битмап - например из ресурсов
берем самый стандартный BitBlt - все пучком, через не раз описанный memDC все работает.

берем DC принтера.
выводим на него всякую фигню (техт, ректанглы и т.п.)- все пучком
пробуем вывести битмап - ошибок не выдает, все пучком... вот только не выводит. т.е. текст и т.д. - выводит, а битмап - нет.

несколько пояснений
1. метрика стоит на принтере - мм.
2. пробовал как с BitBlt так и с StretchBlt - эффекта ноль.

так вот вопрос - кто нить сталкивался с такой ерундой?
что не так делаю?

заранее сенкс.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2009, 14:15     Проблема с выводом bitmap-ов на принтер...
Посмотрите здесь:

Структура и класс string. Проблема с выводом строки. C++
C++ Работа с BITMAP
Проблема с вводом-выводом из файлов C++
Проблема с выводом строки C++
C++ Проблема с выводом
Проблема с выводом строк C++
C++ Проблема с выводом кириллицы на экран
C++ Проблема с выводом времени
Проблема с выводом массива спиралью против часовой стрелки C++
Формирование 8-bit bitmap C++
C++ Загрузка bitmap файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CardsOuter
Сообщений: n/a
14.04.2009, 11:24     Проблема с выводом bitmap-ов на принтер... #2
вобчем, так видно никто и не знал
ладно, тупголы, сам разобрался уже
вот примерно так - может кому понадобится

CDC memDC;
memDC.CreateCompatibleDC(templ); // берем за основу любой _экранный_ DC

CBitmap logo;
if (logo.LoadBitmap(IDB_BITMAP) == 0)
::MessageBox(NULL, 'ERROR LOADING BITMAP', 'Error', MB_OK);

memDC.SelectObject(&logo);

CRect rz;
memDC.GetClipBox(&rz);

// dc - эт уже принтера, метрика стоит в 0.01 мм
dc.SetMapMode(MM_HIMETRIC);
dc.StretchBlt(500, -5300, 3500, -1400, &memDC, 0, 0, rz.right, rz.bottom, SRCCOPY);

короче фишки

1. контекст для битмапа - экранный. хрен селектобжект сработает на dc принтера
2. в случае мм-ой системы с отрицательными y - размер битмапа при выводе на принтер надо ставить ОТРИЦАТЕЛЬНЫМ.
типа вот.
мож кому поможет.
Yandex
Объявления
14.04.2009, 11:24     Проблема с выводом bitmap-ов на принтер...
Ответ Создать тему
Опции темы

Текущее время: 03:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru