Скриншот с формы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Tenzor
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 13.05.2008 (Вт) 21:53

Скриншот с формы

Сообщение Tenzor » 14.01.2009 (Ср) 19:36

Доброго времени суток. Написал прогу, в ней завершающим шагом, после расчетов строятся графики и соответственно эти графики надо сохранять как картинки. Впинципе сохраняется, но во-первых корявенький там механизм (надо делать их постоянно активными и небольшуб задержку для отрисовки), а во-вторых (главное) графики большие и если на моем монике(24") они влезают по центру экрана без проблем и скрины делаются нормально, то у других людей(19", 17") они вылазят за край экрана и при сохранении на картинкек от графика остается только та часть, которая осталась на экране, а остальное - черное поле. Есть ли возможность как-то сделать скриншот с формы(на форме много всего) избегнув этой проблемы?
попробовал что-то в этом роде:
bitblt(Form2.Picture1.hDC, 0, 0, 530, 240, Form1.hDC, 530, 240, SRCCOPY)
Скриншот делает так как надо, но при попытке сохранить через SavePicture(с помощью commondialog) не удается, так как не тот тип.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Скриншот с формы

Сообщение tyomitch » 14.01.2009 (Ср) 19:56

Ставить AutoRedraw=True пробовал?
Изображение

Tenzor
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 13.05.2008 (Вт) 21:53

Re: Скриншот с формы

Сообщение Tenzor » 14.01.2009 (Ср) 20:10

Стоит и в первом случае не помогает. Во втором помогаети, но проблема-сохранить изображение из этой картинки как файл:
SavePicture Form2.Picture1.hDC, CommonDialog1.FileName
ругается на hDC, что type mismatch

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Скриншот с формы

Сообщение dr.MIG » 14.01.2009 (Ср) 20:24

SavePicture Form2.Picture1.Image, CommonDialog1.FileName
Salus populi suprema lex

Йода
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 99
Зарегистрирован: 06.01.2008 (Вс) 21:04
Откуда: Московская область

Re: Скриншот с формы

Сообщение Йода » 14.01.2009 (Ср) 20:27

НЕНужно так: SavePicture Form2.Picture1.Picture, CommonDialog1.FileName
(а вообще я бы сделал по другому: график рисовал бы в DIB-секции, а затем просто сохранил данные диба, прикрутив к ним BITMAPFILEHEADER и BITMAPINFO)
З.Ы. 2 dr.MIG: В твоём варианте сохранится только видимая часть Picture.
З.З.Ы. 2 dr.MIG: Извиняюсь :oops: , твой вариант работает, просто я кинул на Picture рисунок из буфера обмена и пробовал с ним. :oops:
З.З.З.Ы Только что проверил, действительно: Property Image As IPictureDisp. dr.MIG, ещё раз прошу меня извинить. :oops:
Последний раз редактировалось Йода 14.01.2009 (Ср) 20:43, всего редактировалось 1 раз.
Sub or Function not defined

Tenzor
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 13.05.2008 (Вт) 21:53

Re: Скриншот с формы

Сообщение Tenzor » 14.01.2009 (Ср) 20:41

Йода писал(а):Нужно так: SavePicture Form2.Picture1.Picture, CommonDialog1.FileName
(а вообще я бы сделал по другому: график рисовал бы в DIB-секции, а затем просто сохранил данные диба, прикрутив к ним BITMAPFILEHEADER и BITMAPINFO)
З.Ы. 2 dr.MIG: В твоём варианте сохранится только видимая часть Picture.

я понимаю что надо Picture2.Picture, но после этого
bitblt(Form2.Picture1.hDC, 0, 0, 530, 240, Form1.hDC, 530, 240, SRCCOPY)
Picture2.Picture=0 и следовательно ошибка.
А что такое DIB и как им пользоваться(как вариант, где бы почитать?)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList