Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 566
от 28.10.2006, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 407, Экспертов: 52
В номере:Вопросов: 2, Ответов: 2


Вопрос № 59820: Здравствуйте. возник вопрос: пишу на BCB 6.0 на канву формы с помощью Canvas->Draw выкладываю Битмап. хочу поверх него вывести текст с помощью Canvas->TextOutA. все прекрасно работает, но фон у текста серый (по умолчанию). ...
Вопрос № 59837: Здравствуйте! Помогите плиз разобраться с координатами GDI. Нужно распечатать вывод, рисуемый моей программой. Сейчас оно работает, но вывод печатается совсем маленький, раза в 5 меньше чем надо. Когда-то давно я разбирался со всеми этими кли...

Вопрос № 59.820
Здравствуйте.
возник вопрос:
пишу на BCB 6.0
на канву формы с помощью Canvas->Draw выкладываю Битмап.
хочу поверх него вывести текст с помощью Canvas->TextOutA.
все прекрасно работает, но фон у текста серый (по умолчанию).
как мне поставить свой фон под текстом, либо сделать фон прозрачным?
зарание спасибо
Отправлен: 22.10.2006, 21:23
Вопрос задал: PROD (статус: 5-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, PROD!

SetBkMode(Canvas->Handle, TRANSPARENT);

либо убрать ETO_OPAQUE из флагов TextFlags:
Canvas->TextFlags &= ~ETO_OPAQUE;

Удачи!
Ответ отправил: Sergey A. Wedensky (статус: 6-ой класс)
Ответ отправлен: 23.10.2006, 10:16
Оценка за ответ: 5


Вопрос № 59.837
Здравствуйте! Помогите плиз разобраться с координатами GDI.
Нужно распечатать вывод, рисуемый моей программой.
Сейчас оно работает, но вывод печатается совсем маленький, раза в 5 меньше чем надо. Когда-то давно я разбирался со всеми этими клиенстскими логическими, экранными координатами но все благополучно забыл :-)
В принципе смогу разобраться сам, но решил проверить, что быстрее - получить помощь уважаемых экспертов или втыкать самому.
Ниже куски кода приложения, постарался привести только необходимое и достаточное. Нужно, передать такой rcPosition, чтобы AFCYearObj::Draw отрисовало все так, чтобы картинка занимала весь лист бумаги.
Сорри если излагожил непонятно. Заранее спасибо!

Приложение:

Отправлен: 23.10.2006, 01:46
Вопрос задал: Eustin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, Eustin!

GetClientRect() возвращает размер окна в точках. Вам же нужно вывести на бумагу изображение соответствующего размера, учитывая разрешение принтера, выбранный формат бумаги и пр.
Для получения размера DC принтера в точках можно воспользоваться
int Width = dcPrint.GetDeviceCaps(HORZ_RES);
int Height = dcPrint.GetDeviceCaps(VERT_RES);
Для более точной подгонки хорошо бы еще учесть физические поля принтера:
GetDeviceCaps(PHYSICAL_OFFSET_X);
GetDeviceCaps(PHYSICAL_OFFSET_Y);
Правда нужно будет перевести в пикселы, например узнав разрешение принтера
GetDeviceCaps(LOGPIXELS_X);
GetDeviceCaps(LOGPIXELS_Y);

Удачи!
Ответ отправил: Sergey A. Wedensky (статус: 6-ой класс)
Ответ отправлен: 23.10.2006, 10:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное