DiBR
обычная кошмарная
домашняя страничка
Ежекакполучится околокомпьютерное обозрение
 
  <<<  предыдущий Tech! archive #419 следующий  >>>  
   Последний выпуск       Архив       Ссылки       Полезности       humor.filtered       Фотки       О сайте   
          Это - достаточно беспорядочный архив сообщений конференций сети fidonet, которые на момент их прочтения мной показались полезными или интересными. Многие устарели, многие узкоспецифичны и малоинтересны, но может оказаться и что-то новое...
         
- __techs (2:5015/42) ----------------------------------------------- __techs -
Msg  : 419 of 1000
From : Nick Yegorov                        2:463/132.157   21 May 97  18:35:38
To   : Max Shkurenko                                       23 May 97  04:41:10
Subj : Re: Печать
-------------------------------------------------------------------------------
@AREA:RU.VISUAL.BASIC
Hello Max!

Long time ago, in one galaxy far, far away.....
Monday May 19 1997 18:46, Max Shkurenko wrote to Nick Yegorov:

MS> Врезался я тут к спору Nick Yegorov c Alexander Shherbakov:

MS> Я тихо сидел и читал как тут публика веселится и вдруг увидел вещь которая
MS> меня уже давно болит. Делать PrintPreview. Очень-очень надо. Hе предлагать
MS> плз перед выводом объектов на принтер тоже самое учудить с picture. Kак же
MS> мне тогда zoom менять.

1. Создаешь PictureBox и делаешь его _размером с лист принтера_:
PreviewPicture.Width=Printer.Width
  PreviewPicture.Height=Printer.Height
  PreviewPicture.Visible=False           'Это временный буфер
2. Оформляешь всю процедуру печати в виде функции,
  на вход которой дается аргумент Desc AS Control.
  При печати даешь Printer, для preview - PreviewPicture.
  У них практически идентичные графические методы, поэтому
  в теле процедуры просто пишешь:
  Desc.Line (...): Desc.Print "...": BitBlt(Desc.hDC,...)
  (Если у тебя уже есть готовая картинка, например BMP, или
  содержимое Picture box'a, просто копируешь его в PreviewPicture)
3. Делаешь StretchBlt из PreviewPicture в ту, которая
  находиться на форме и предназначена для просмотра preview.
  Ее размеры выбираешь исходя из нужного тебе Zoom-фактора.
  Получаешь на экране уменьшенную в N раз копию листа принтера.
  При изменении Zoom'a меняешь размеры картинки и снова
  делаешь StretchBlt.

PS: StretchBlt можно сделать и средствами басика - манипулируя
  различными свойствами PictureBox'a - RTFH(elp).
PPS: Hе забудь правильно выставить свойства AutoRedraw.
PPPS: Возникнут вопросы - пиши, обсудим.

Best regards,
Nick

--- GoldED 2.50.Beta5+
* Origin: If you can't win fair, just win! (2:463/132.157)






<<<

архив dibr

>>>'