Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 19.08.2010
Сообщений: 123

Стандартные компоненты для печати формы.

28.04.2011, 15:27. Показов 1468. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
A kak ya mogu pechatat Form1 obichni Vb interfeis s Textboxami,
Es takaya Api funkciya?
Paproboval Form1.PrintForm Chto delayet ni kak ni ponimayu?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2011, 15:27
Ответы с готовыми решениями:

Получить предваренные нормальные формы и скулемовские стандартные формы для данных формул
Получить предваренные нормальные формы и скулемовские стандартные формы для данных формул

Компоненты для печати
Помоги найти следующие компоненты: - tfrxDataSet - frxReport - preview Надо сделать предварительный просмотр для печати и нужны эти...

Чем являются компоненты, входящие в состав формы для класса этой формы?
То есть объявляется класс нашей формы: type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; procedure...

4
Comanche
28.04.2011, 17:06
Конечно же нет такой АПИ-функции!
Но ничто не мешает получить hDC нужной формы, затем перенести его (BitBlt) в виртуальный контекст, и превратить последний в объект StdPicture (при помощи OleCreatePictureIndirect). После этого можно воспользоваться вот такой функцией:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Public Sub PrintPictureToFitPage(Prn As Printer, Pic As Picture)
    Const vbHiMetric As Integer = 8
    Dim PicRatio As Double
    Dim PrnWidth As Double
    Dim PrnHeight As Double
    Dim PrnRatio As Double
    Dim PrnPicWidth As Double
    Dim PrnPicHeight As Double
    
    If Pic.Height >= Pic.Width Then
        Prn.Orientation = vbPRORPortrait
    Else
        Prn.Orientation = vbPRORLandscape
    End If
    
    PicRatio = Pic.Width / Pic.Height
    PrnWidth = Prn.ScaleX(Prn.ScaleWidth, Prn.ScaleMode, vbHiMetric)
    PrnHeight = Prn.ScaleY(Prn.ScaleHeight, Prn.ScaleMode, vbHiMetric)
    PrnRatio = PrnWidth / PrnHeight
    
    If PicRatio >= PrnRatio Then
        PrnPicWidth = Prn.ScaleX(PrnWidth, vbHiMetric, Prn.ScaleMode)
        PrnPicHeight = Prn.ScaleY(PrnWidth / PicRatio, vbHiMetric, Prn.ScaleMode)
    Else
        PrnPicHeight = Prn.ScaleY(PrnHeight, vbHiMetric, Prn.ScaleMode)
        PrnPicWidth = Prn.ScaleX(PrnHeight * PicRatio, vbHiMetric, Prn.ScaleMode)
    End If
    
    Prn.PaintPicture Pic, 0, 0, PrnPicWidth, PrnPicHeight
    
End Sub
Примеры упомянутых API найдёшь в API Guide.
0 / 0 / 0
Регистрация: 19.08.2010
Сообщений: 123
28.04.2011, 17:18  [ТС]
Sposibo,
A na 1 parametr 'Prn As Printer' chto ya budu dat.
I kak ya ponyal maii textboxi ya dolojen pereopridilit na picture?
0
Comanche
28.04.2011, 18:52
1. Передавай Printer (ну или VB.Printer).
2. Я так понял, что ты ничего не понял ) Идея в том, что каждое окошко (и VB-форма в том числе) имеет 'device context' (hDC - его дескриптор). С помощью API-функции BitBlt мы можем скопировать содержимое этого 'контекста' в виртуальный контекст, созданный с помощью CreateCompatibleDC(GetDC(GetDesktopWindo w)); только предварительно надо 'разместить' (API SelectObject) в вирт. контексте битмапчик (не менее виртуальный), созданный ранее при помощи CreateCompatibleBitmap. В итоге, BitBlt перенесёт КАРТИНКУ VB-формы (грубо говоря - 'попиксельно') в этот вирт. битмпачик. Что имеем в итоге? - приятную вещь: точная копия картинки твоей формы лежит в памяти; осталось только превратить это всё в понятный бэйсику объект StdPicture. А для этого используем OLECreatePictureIndirect (хороший тому пример есть в API Guide). Вот и всё. Кстати, если вместо OLECreatePictureIndirect использовать связку из OpenClipboard/SetClipboardData/CloseClipboard, то получится программный аналог клавиш 'ALT + PrintScreen': помещение скриншота активного окна в буфер обмена! Таким путём, кстати, тоже можно пойти (если не жаль попортить содержимое буфера обмена), ведь после этого объект StdPicture легко получается при помощи вызова штатной VB-функции Clipboard.GetData!
0 / 0 / 0
Регистрация: 19.08.2010
Сообщений: 123
28.04.2011, 19:12  [ТС]
Sposibo.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2011, 19:12
Помогаю со студенческими работами здесь

Стандартные размеры иконок для окна формы и панели задач
Всем здравствуйте. Изображения каких размеров и с какой глубиной цвета должны присутствовать в ico-файле, чтобы они не искажались. ...

3d плот есть ли стандартные компоненты?
Всем привет. Нужно нарисовать повехность в 3d, что-то на подобии 3d плота mathcad. Есть ли стандартные компоненты,такие как chart в...

Заполнение формы для печати
требуется заполнить форму и потом распечатать её на формате А4 так, чтобы каждая запись была четко на своем месте. есть ли возможность...

QtScript. Как добавить стандартные компоненты?
В инете несколько раз видел, как в скриптах QtScript использую стандартные компоненты Qt. К примеру, var timer = new QTimer; Не...

Отображение формы после печати или закрытия печати
Подскажите кто нибудь как дальше быть, нажимаю кнопку печать, выскакивает просмотр на печать, а вот после проблема, когда закрываю просмотр...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru