Это - достаточно беспорядочный архив сообщений конференций сети 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)