Страница: 1 |
Страница: 1 |
Вопрос: Ещё вопрос по картинкам
Добавлено: 27.07.08 23:23
Автор вопроса: van-lamer
Видили же в винде прогу Просмотр изображений и факсов, как сделать увеличение картинки при использовании скрола мыши? Крутишь вверх постепенное увеличение до определенного размера и наоборот. И еще как выделить регион в picturebox ну как в паинте не вырезать а просто выделить и при нажатии кнопки отобразить выделенное в другом picturebox?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 28.07.08 00:27
событие (громким отчетливым голосом, которым рассказывают сказки-страшилки дети друг другу, собравшись на чердаке в хеллоуин под стук дождя и грохот молний) ОН-МАУС-ВИЛЛЛЛЛЛ !!! УУУ!!))))
Номер ответа: 2
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #2
Добавлено: 28.07.08 11:34
Private Enum State
Over
Out
End Enum
Private imgState As State
Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
imgState = State.Over
End Sub
Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
imgState = State.Out
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
PictureBox1.Location = New Point(Me.Width * 0.5 - PictureBox1.Width * 0.5, Me.Height * 0.5 - PictureBox1.Height * 0.5)
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
End Sub
Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If imgState = State.Over Then
If e.Delta > 0 Then
PictureBox1.Scale(New SizeF(1.2, 1.2))
Else
PictureBox1.Scale(New SizeF(0.83, 0.83))
End If
PictureBox1.Location = New Point(Me.Width * 0.5 - PictureBox1.Width * 0.5, Me.Height * 0.5 - PictureBox1.Height * 0.5)
End If
End Sub
Номер ответа: 3
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #3
Добавлено: 28.07.08 13:12
Private Enum State
Over
Out
 own
Up
End Enum
Private imgState As State
Private graph As Graphics = Nothing
Private pointOfRect As Point
Private copyRect As Rectangle
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
imgState = State.Down
If graph Is Nothing Then graph = PictureBox1.CreateGraphics
pointOfRect = e.Location
End Sub
Private Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
imgState = State.Over
End Sub
Private Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
imgState = State.Out
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
PictureBox1.Location = New Point(Me.Width * 0.5 - PictureBox1.Width * 0.5, Me.Height * 0.5 - PictureBox1.Height * 0.5)
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
PictureBox2.SizeMode = PictureBoxSizeMode.AutoSize
End Sub
Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If imgState = State.Over Then
If e.Delta > 0 Then
PictureBox1.Scale(New SizeF(1.2, 1.2))
Else
PictureBox1.Scale(New SizeF(0.83, 0.83))
End If
PictureBox1.Location = New Point(Me.Width * 0.5 - PictureBox1.Width * 0.5, Me.Height * 0.5 - PictureBox1.Height * 0.5)
End If
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If imgState = State.Down Then
PictureBox1.Refresh()
copyRect = New Rectangle(pointOfRect.X, pointOfRect.Y, e.X - pointOfRect.X, e.Y - pointOfRect.Y)
graph.DrawRectangle(Pens.Red, copyRect)
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
imgState = State.Up
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'PictureBox2.Refresh()
'Using g As Graphics = PictureBox2.CreateGraphics
' g.DrawImage(PictureBox1.Image, 0, 0, copyRect, GraphicsUnit.Pixel)
'End Using
'сюда впендюрить копирование я чота не знаю
End Sub