Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: КАК КУСОЧЕК ИЗОБРАЖЕНИЯ В IMAGE ПЕРЕРИСОВАТЬ... Добавлено: 30.07.05 19:57  

Автор вопроса:  HACKER
КАК КУСОЧЕК (определённую область) ИЗОБРАЖЕНИЯ В IMAGE ПЕРЕРИСОВАТЬ НА ФОРУМУ!!!

почитать API не предлагать - читал, все функции требуют в качестве параметра hdc, которого к Image НЕТУ !

Ответить

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

Номер ответа: 1
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #1
Добавлено: 30.07.05 20:08
Да у неё даже и HWND то нету. значит это вообще не окно. а значит оно просто описывает как надо рисовать изображение. А рисовать оно его будет нигде больше как на ФОРМЕ! (или там в чём он у тебя лежит) вот тот HDC брать и надо. Только надо учесть смещенние изображения. И сместиться оно (а пикселах) на Left/Top соответственно. Вот типа вот этого:

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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
'image size
Const iw As Long = 40
Const ih As Long = 40
Dim l As Long
Dim t As Long
Dim h As Long 'hDC


Private Sub Command1_Click()
Me.ScaleMode = 3 'pixel
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy
End Sub

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 30.07.05 20:14
хм... а ну щас затестим

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 30.07.05 20:20
а не пашет !


Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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
Private Sub Form_Load()
'image size
Dim iw As Long
Dim ih As Long

Dim l As Long
Dim t As Long
Dim h As Long 'hDC



Me.ScaleMode = 3 'pixel
ih = Image1.Height
iw = Image1.Width
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy


End Sub

в Picture1 какой-то левый кусок картинки с экрана попадает, короче попадает не то что мне нужно

Ответить

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



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #4
Добавлено: 30.07.05 20:48
Имхо эта простая ошибка графики. В батоне всё ок.
А если вот так попробывать:
у меня работает на ура:

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

Private Sub Form_Load()
'image size
Dim iw As Long
Dim ih As Long
Dim l As Long
Dim t As Long
Picture1.AutoRedraw = True '!!
Show '!!
Me.Refresh ' !!!
Me.ScaleMode = 3 'pixel
ih = Image1.Height
iw = Image1.Width
l = Image1.Left
t = Image1.Top
BitBlt Picture1.hDC, 0, 0, iw, ih, Me.hDC, l, t, vbSrcCopy
Picture1.Refresh '!!!
End Sub

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 31.07.05 23:29
О! Имхо работает! Спасибо Morpheus!!!

Ответить

Страница: 1 |

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



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