Проблемма с сохранением картинки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Проблемма с сохранением картинки

Сообщение Sirik » 16.04.2004 (Пт) 13:58

У меня есть одна проблемма:
я скопировал содержимое экрана в Picture1, потом мне надо эту картинку сохранить на диск. У меня при этом возникает ошибка.
Когда же я вставил в Picture1 любую картинку (путём копирование через буфер обмена - всё ок), а с функцией BitBlt ничего не получается.
Вот код, помогите кто чем может!!! Очень надо.
Код: Выделить всё
  Dim hDesk, hDeskDC
 
  hDesk = GetDesktopWindow()
  hDeskDC = GetDC(hDesk)
  BitBlt Picture1.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

  SavePicture Picture1.Picture, "c:\Picture.bmp"


P.S. Функция BitBlt описана и константа как:
Код: Выделить всё
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Public Const SRCCOPY = &HCC0020
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 16.04.2004 (Пт) 14:02

Ну правильно :) Когда вы рисуете в PictureBox с помощью HDC то какртинки в нем нету т.е Picture1.Picture=0 образно!!!
SavePicture Picture1.Image, "c:\Picture.bmp"
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 16.04.2004 (Пт) 14:05

_Мика_, БОЛЬШОЕ спасибо!!!
Правильно Picture1.Picture=0, только я не мог понять почему!
Теперь всё понятно. Ещё раз спасибо
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 16.04.2004 (Пт) 14:09

Теперь ещё один вопрос:
я копирую всю область рабочего стола, а сохраняется на диск только та часть, которая "влезла" в Picture1!!!
Проблемма в том, что не могу Picture1 "растянуть" на весь экран, тем более эта опирация должна происходить без ведома пользователя.
Может кто-то чтонибудь посоветует??? :?:
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 16.04.2004 (Пт) 14:19

Я сам разобрался, спасибо всем!!!
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 16.04.2004 (Пт) 14:21

Код: Выделить всё
Set pic = Picture1.Picture
SavePicture pic, "......\123.bmp"

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 16.04.2004 (Пт) 15:33

Picture1.AutoRedraw=True
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 16.04.2004 (Пт) 16:13

AutoSize
AutoRedraw - автоперерисовка, а не авторазмер
Нет меня больше

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 17.04.2004 (Сб) 12:55

Да нет A.Z.Z. у него просто пикчер маленький, он снимает скрин и потом сохраняет а поскольку авторедро не стоит то сохраняется только видимая часть 8)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!


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

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 15

    TopList