imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.03.2006, 18:04     # 1
mafia
Junior Member
 
Аватар для mafia
 
Регистрация: 21.01.2005
Адрес: Nsk
Пол: Male
Сообщения: 166

mafia Нимб уже пробиваетсяmafia Нимб уже пробивается
Рисование в Visual Basic 6.0

Как и чем (компанент) реализовать рисование мышью в VB6?

А точнее нужна матрица (расчерченый квадтат где-то 10Х10 или можно 20Х20) и чтобы при наведении мышки с нажатой левой кнопкой заполнялась ячейка под указателем мышки. Это нужно для того, чтобы закрашенные ячейки в матрице стали 1, а не закрашеные 0.

Вопрос: как и чем?
mafia вне форума  
Старый 28.03.2006, 13:16     # 2
mafia
Junior Member
 
Аватар для mafia
 
Регистрация: 21.01.2005
Адрес: Nsk
Пол: Male
Сообщения: 166

mafia Нимб уже пробиваетсяmafia Нимб уже пробивается
как рисовать вроде немного разобрался, но вот теперь возник другой вопрос: как сделать так, чтобы мышь опрашивалась почаще, а то если рисоавть тем методом, что я указал, то при резких движениях большие зазоры остаются. То есть рисовать нада по латышски
где копать?
а вот листинк проги для простого рисования на форме:
Цитата:
Dim risov As Boolean
Dim flag As Byte
Private Sub Command1_Click()
flag = 1
End Sub
Private Sub Command2_Click()
flag = 2
End Sub

Private Sub Command3_Click()
flag = 3
End Sub

Private Sub Command4_Click()
Cls
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
risov = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If risov = True Then
If flag = 1 Then PSet (X, Y)
If flag = 2 Then Line (X, Y)-((X - 50), (Y - 50))
If flag = 3 Then Line (X, Y)-(X - 10, Y - 100)
End If
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
risov = False
End Sub
mafia вне форума  
Старый 30.03.2006, 20:43     # 3
Nerey_ser
Junior Member
 
Аватар для Nerey_ser
 
Регистрация: 30.03.2006
Адрес: Беларусь
Сообщения: 79

Nerey_ser Путь к славе только начался
Wink

Я не сильно разобрался, что означают flag=2 и flag=3. Однако исправить ошибку можно так:

Сохранять пердыдущее положение мыши в отдельных переменных. Потом вместо рисования точки рисовать линию от старой (сохранённой) позиции курсора до новой.

Такой способ даёт ошибку если рисовать дугу быстро - она становиться ломаной. Но такая ошбка есть даже в Paint...

А вообще, впервые вижу програмиста Бейсика.
Nerey_ser вне форума  
Старый 30.03.2006, 21:05     # 4
mafia
Junior Member
 
Аватар для mafia
 
Регистрация: 21.01.2005
Адрес: Nsk
Пол: Male
Сообщения: 166

mafia Нимб уже пробиваетсяmafia Нимб уже пробивается
флаги нужны для выбора так сказать инструмента рисования (круг, прямоугольник, точка)...
вобще ответ нашел такой.. нужно рисовать в picturebox там мол быстро будет.

но теперь у меня возник другой вопрос. как закрасить замкнутую поверхность в VB.
уже долго не могу найти ответа.. помогите!!!
mafia вне форума  
Старый 31.03.2006, 18:24     # 5
Nerey_ser
Junior Member
 
Аватар для Nerey_ser
 
Регистрация: 30.03.2006
Адрес: Беларусь
Сообщения: 79

Nerey_ser Путь к славе только начался
Я тоже не знаю. Сам мучался. Попробуй вручную алгоритм сбацать.
Nerey_ser вне форума  
Старый 31.03.2006, 21:10     # 6
UriF
Member
 
Регистрация: 20.05.2004
Сообщения: 385

UriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царстве
посмотри здесь
http://vbnet.mvps.org/index.html?cod...api/index.html

кроме того есть книга (если выкладывать код, то это страниц ок. 50)
Win32 API Programming with Visual basic
Steven Roman (www.oreilly.com)
ISBN 1-56592-631-5
там все объяснено
UriF вне форума  
Старый 01.04.2006, 02:50     # 7
mafia
Junior Member
 
Аватар для mafia
 
Регистрация: 21.01.2005
Адрес: Nsk
Пол: Male
Сообщения: 166

mafia Нимб уже пробиваетсяmafia Нимб уже пробивается
Цитата:
Сообщение от UriF
посмотри здесь
http://vbnet.mvps.org/index.html?cod...api/index.html

кроме того есть книга (если выкладывать код, то это страниц ок. 50)
Win32 API Programming with Visual basic
Steven Roman (www.oreilly.com)
ISBN 1-56592-631-5
там все объяснено
хм.. английский знаю на хорошем уровне, но столько программерских терминов.. пока рановато
но за ресурс спасибо...

проблему закрашивания так и не решил. пока выхожу рисованием "жирной кистью" (но желательно именно залить замкнутую область)
mafia вне форума  
Старый 01.04.2006, 05:51     # 8
UriF
Member
 
Регистрация: 20.05.2004
Сообщения: 385

UriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царствеUriF Луч света в тёмном царстве
примеры из этой книги (если поможет)
Вам будет легко читать эту книгу, если Вы немного знакомы с C/C++.
Даже если нет, то эта книга позволит изменить Ваше мировоззрение и стать экспертом в VB, легче перейти на другие языки, да и с легкостью работать с подобными сайтами

http://examples.oreilly.com/win32api/

http://rapidshare.de/files/16973720/Sample.rar.html

Последний раз редактировалось RaZEr; 02.04.2006 в 00:00.
UriF вне форума  
Старый 01.04.2006, 11:20     # 9
mafia
Junior Member
 
Аватар для mafia
 
Регистрация: 21.01.2005
Адрес: Nsk
Пол: Male
Сообщения: 166

mafia Нимб уже пробиваетсяmafia Нимб уже пробивается
книга опять таки на английском языке. есть ли подобные ресурсы на русском? или перевод этой книги?
(очень хочется стать знатоком VB )
mafia вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:13.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.