Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: графика Добавлено: 13.04.09 16:51  

Автор вопроса:  Tolya
На VB надо, что бы по нажатию кнопки сохранялась часть формы в графическом файле.

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 VβÐ



Вопросов: 15
Ответов: 194
 Web-сайт: www.homacosoft.com
 Профиль | | #1
Добавлено: 13.04.09 17:22
  1. autoredraw = true
  2. savepicture image, "C:\boo.bmp"

Ответить

Номер ответа: 2
Автор ответа:
 Tolya



Вопросов: 13
Ответов: 18
 Профиль | | #2 Добавлено: 13.04.09 18:18
Мне надо, что бы сохраняло не всю форму, а часть формы, в заданных координатах со всеми объектами в этой области.

Ответить

Номер ответа: 3
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #3 Добавлено: 13.04.09 18:53
На вб6?
Это апи нужны, например BitBlt.
Копируй в пикчербокс из DC формы или на крайняк десктопа.

Ответить

Номер ответа: 4
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #4
Добавлено: 13.04.09 19:25
Как раз таки не накрайняк

Ответить

Номер ответа: 5
Автор ответа:
 Tolya



Вопросов: 13
Ответов: 18
 Профиль | | #5 Добавлено: 13.04.09 19:36
Приведи пример пожалуйста. :)

Ответить

Номер ответа: 6
Автор ответа:
 VβÐ



Вопросов: 15
Ответов: 194
 Web-сайт: www.homacosoft.com
 Профиль | | #6
Добавлено: 13.04.09 20:31
  1.  
  2. autoredraw = true
  3. picture1.autoredraw = true
  4. picture1.paintpicture image, 0,0, , , x,y,width,height
  5. savepicture picture1.image,"C:\boo.bmp"

Ответить

Номер ответа: 7
Автор ответа:
 Tolya



Вопросов: 13
Ответов: 18
 Профиль | | #7 Добавлено: 14.04.09 18:51
Он сохраняет только саму форму, а мне надо еще и объекты в этой области.

Ответить

Номер ответа: 8
Автор ответа:
 Tolya



Вопросов: 13
Ответов: 18
 Профиль | | #8 Добавлено: 16.04.09 16:51
У меня есть image1 и image2 один на другом.
Мне надо, чтобы эти 2 image сохранились в графическом файле.

Ответить

Номер ответа: 9
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #9
Добавлено: 17.04.09 00:08
смит был прав, достаточно hdc формы
  1. [source][source]Private 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
  2.  
  3. Private Sub command1_Click()
  4.     Dim Ret As Long, iLeft As Long, iTop As Long, iWidth As Long, iHeight As Long
  5.     picture1.ScaleMode = 1
  6.     If (image1.Left <= image2.Left) Then
  7.         iLeft = (image1.Left) / Screen.TwipsPerPixelX
  8.         iWidth = (Abs(image2.Left - image1.Left) + image2.Width) / Screen.TwipsPerPixelX
  9.     Else
  10.         iLeft = (image2.Left) / Screen.TwipsPerPixelX
  11.         iWidth = (Abs(image1.Left - image2.Left) + image1.Width) / Screen.TwipsPerPixelX
  12.     End If
  13.     If (image1.Top <= image2.Top) Then
  14.         iTop = (image1.Top) / Screen.TwipsPerPixelY
  15.         iHeight = (Abs(image2.Top - image1.Top) + image2.Height) / Screen.TwipsPerPixelY
  16.     Else
  17.         iTop = (image2.Top) / Screen.TwipsPerPixelY
  18.         iHeight = (Abs(image1.Top - image2.Top) + image1.Height) / Screen.TwipsPerPixelY
  19.     End If
  20.     If iWidth <> 0 And iHeight <> 0 Then
  21.     picture1.Width = iWidth * Screen.TwipsPerPixelX
  22.     picture1.Height = iHeight * Screen.TwipsPerPixelY
  23.     If BitBlt(picture1.hdc, 0, 0, iWidth, iHeight, Me.hdc, iLeft, iTop, vbSrcCopy) = 1 Then
  24.         SavePicture picture1.Image, "d:\1.bmp"
  25.          picture1.Refresh
  26.     End If
  27. End If
  28. End Sub

[/source]

[/source]

Ответить

Номер ответа: 10
Автор ответа:
 Tolya



Вопросов: 13
Ответов: 18
 Профиль | | #10 Добавлено: 22.04.09 15:42
Он вставляет в picture1 эту картинку, а записывает в файл только backcolor пикчера.

Ответить

Номер ответа: 11
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #11 Добавлено: 23.04.09 00:54
Arvitaly, Smith знал что прав :)

Просто решил написать свой примерчик
  1. Option Explicit
  2.  
  3. Private 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
  4.  
  5. Private Sub SaveQuad(ByRef X As Long, ByRef Y As Long, ByRef X2 As Long, ByRef Y2 As Long, ByRef Pathfile As String)
  6.     ScaleMode = vbPixels
  7.     With Picture1
  8.         .Move 120, 120, X2 - X, Y2 - Y
  9.         .AutoRedraw = True
  10.         BitBlt .hDC, 0, 0, .Width, .Height, hDC, X, Y, vbSrcCopy
  11.         SavePicture .Image, Pathfile
  12.     End With
  13. End Sub
  14.  
  15. Private Sub Command1_Click()
  16.     SaveQuad 10, 10, 120, 120, "D:\Shot1.bmp"
  17. End Sub

Координаты в пикселях если кто невъехал.

Ответить

Номер ответа: 12
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #12
Добавлено: 23.04.09 07:37
 Tolya
Поставь AutoRedraw = True

Ответить

Номер ответа: 13
Автор ответа:
 $@ny@PG



ICQ: 468469477 

Вопросов: 71
Ответов: 196
 Профиль | | #13 Добавлено: 23.04.09 16:40
А зачем тебе часть формы?

Ответить

Номер ответа: 14
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #14
Добавлено: 23.04.09 17:34
Ну типа наверное пишет свой ACDSEE или что-то вроде того))))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам