Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: iSkywalker.ru
 Профиль | | #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-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 28.07.08 13:12

Private Enum State
        Over
        Out
        ;Down
        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

Ответить

Страница: 1 |

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



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