Страница: 1 |
Страница: 1 |
Вопрос: Графический редактор
Добавлено: 17.02.06 20:00
Автор вопроса: Driver_S
Люди! Пожалуйста помогите, если не трудно.
Хочу сделать простенький граф. редактор, типа Paint.
Но не знаю как сделать так, чтобы для рисования линий, прямоугольников или эллипсов, перед окончательной их прорисовкой при удерживании кнопки мыши, например, рисовался их динамический прототип (ну как в Paint`e) и при этом он не стирал того, что уже нарисовано ?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #3
Добавлено: 18.02.06 10:20
DC = Device Context
Номер ответа: 4
Автор ответа:
Driver_S
Вопросов: 1
Ответов: 3
Профиль | | #4
Добавлено: 19.02.06 13:05
Про Device Context, к сожалению, не знаю. Но получилось.
Вот так:
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
Да вроде и это нормально работает...