| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Переменная Printer |
| Автор: Alex Shulg 12.8.2003, 12:52 |
| Добрый день, Уж не знаю, переменная это или какая иния структура (сори, не очень хорошо знаком с VB). Суть в том, что при печати на принтер, не разворачивает шрифт, если он не горизонтальный, а под каким-нибудь углом. Исходный текст: Printer.NewPage ... With text(Order(i).Number - 1) Printer.FontName = .Font Printer.FontBold = .Bold Printer.FontSize = .Size * PrintScale Printer.FontItalic = .italic Printer.FontUnderline = .underline Printer.ForeColor = RGBText(.color) angle = .Rotate * 10 b = IIf(.Bold, 700, 400) sfont = MulDiv(.Size * PrintScale, GetDeviceCaps(Printer.hdc, LOGPIXELSY), 72) er = SetMapMode(Printer.hdc, MM_TEXT) hfnt = CreateFont(sfont, 0, angle, angle, b, .italic, .underline, 0, 0, OUT_TT_ONLY_PRECIS, 0, 0, 0, .Font) hfntold = SelectObject(Printer.hdc, hfnt) er = TextOut(Printer.hdc, x1, y1, .Title, Len(.Title)) hfntold = SelectObject(Printer.hdc, hfntold) er = DeleteObject(hfnt) Если убираю присвоение значений полям переменной Printer, то шрифт на принтере даже не подхватывает курсив. Причем воспроизвел этот кусок на Delphi, работает. Даже переменной Printer ничего не присваивал, чистым API все делает правильно. Так почему тоже самое не отрабатывает в VB? |