Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Графический редактор Добавлено: 17.02.06 20:00  

Автор вопроса:  Driver_S
Люди! Пожалуйста помогите, если не трудно.
Хочу сделать простенький граф. редактор, типа Paint.
Но не знаю как сделать так, чтобы для рисования линий, прямоугольников или эллипсов, перед окончательной их прорисовкой при удерживании кнопки мыши, например, рисовался их динамический прототип (ну как в Paint`e) и при этом он не стирал того, что уже нарисовано ?

Ответить

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

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 17.02.06 20:30
То, что уже нарисовал, копируй на диси в памяти, а потом при шевелении мышкой с зажатой кнопкой копируй из того диси на форму и рисуй свой примитив.

Ответить

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



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 17.02.06 21:31
Thanks! But sorry, I don`t understand: what is диси?

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 18.02.06 10:20
DC = Device Context

Ответить

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



Вопросов: 1
Ответов: 3
 Профиль | | #4 Добавлено: 19.02.06 13:05
Про Device Context, к сожалению, не знаю. Но получилось.
Вот так:
Private Sub Pic_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pic.MouseDown
        mousdown = True
        prevx = e.X
        prevy = e.Y
        tomemory()
End Sub

Private Sub Pic_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pic.MouseMove
        If mousdown Then
                frommemory()
    tomemory()
graf.DrawLine(Pens.White, prevx, prevy, x, y)
                x = e.X : y = e.Y
                graf.DrawLine(pen, prevx, prevy, x, y)
                Pic.Refresh()
        End If
End Sub

Private Sub tomemory()
        bmp1 = New Bitmap(Pic.Image)
End Sub
    
Private Sub frommemory()
        Pic.Image = bmp1
        Pic.Refresh()
        graf = Graphics.FromImage(Pic.Image)
End Sub

Ответить

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



Вопросов: 60
Ответов: 808
 Профиль | | #5 Добавлено: 22.02.06 21:40
Фгня. Надо юзать BitBlt, и сохранять заменяемую область в отдельный дисюк.

Ответить

Номер ответа: 6
Автор ответа:
 Driver_S



Вопросов: 1
Ответов: 3
 Профиль | | #6 Добавлено: 23.02.06 18:11
Да вроде и это нормально работает...

Ответить

Страница: 1 |

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



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