Функция QBasica - PAINT

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Функция QBasica - PAINT

Сообщение Zoomie » 30.10.2005 (Вс) 22:51

Вопрос: как реализовать в VB функцию PAINT QBasicа. :?:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.10.2005 (Вс) 23:05

API FloodFill
Изображение

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 30.10.2005 (Вс) 23:35

Хорошо.

Только почемуто не зополняется :cry:

См код:

Код: Выделить всё
Private Sub Form_Load()
Picture1.Line (300, 300)-(900, 600), vbBlue, B
Form1.Caption = FloodFill(Picture1.hdc, 400, 400, vbBlue)
Picture1.Refresh
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.10.2005 (Вс) 23:42

Код: Выделить всё
Picture1.AutoRedraw = True
Изображение

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 30.10.2005 (Вс) 23:43

Стоит! И ни чего... :cry:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 31.10.2005 (Пн) 10:19

FloodFill объявлен правильно? Код в студию.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.10.2005 (Пн) 13:05

FloodFill заполняет текущей кистью.
Текущая кисть - это задний фон.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 31.10.2005 (Пн) 16:38

Amed писал(а):FloodFill объявлен правильно? Код в студию.


Да вроде:

Код: Выделить всё
Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.BackColor = vbWhite
Picture1.Line (0, 0)-(800, 800), vbBlue, BF
Picture1.Line (100, 100)-(600, 600), vbRed, BF
Form1.Caption = FloodFill(Picture1.hdc, 400, 400, vbBlue)
End Sub



GSerg, нужно создавать кисть?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.10.2005 (Пн) 16:47

Да.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 31.10.2005 (Пн) 16:49

А не под скажешь кодик с комментариями? :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.10.2005 (Пн) 16:52

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 31.10.2005 (Пн) 17:05

Спасибо, позже посмотрю!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.10.2005 (Пн) 19:48

Zoomie писал(а):
Amed писал(а):FloodFill объявлен правильно? Код в студию.


Да вроде:

Код: Выделить всё
Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.BackColor = vbWhite
Picture1.Line (0, 0)-(800, 800), vbBlue, BF
Picture1.Line (100, 100)-(600, 600), vbRed, BF
Form1.Caption = FloodFill(Picture1.hdc, 400, 400, vbBlue)
End Sub


Найди 10 отличий.
Код: Выделить всё
Option Explicit
Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.BackColor = vbWhite
Picture1.Line (0, 0)-(800, 800), vbBlue, BF
Picture1.Line (100, 100)-(600, 600), vbRed, BF
Picture1.FillStyle = vbFSSolid
Picture1.FillColor = vbYellow
Form1.Caption = FloodFill(Picture1.hdc, 27, 27, vbBlue)
End Sub


Zoomie писал(а):GSerg, нужно создавать кисть?

Нет.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.10.2005 (Пн) 19:54

Аааа, FillStyle я поставить забыл...
Но кисть всё равно рулит :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 31.10.2005 (Пн) 22:26

GSerg! Да ты фокусник! Большое спасибо!

Мда а отличай тут... э... 4. :mrgreen:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 124

    TopList