Автор вопроса: -АлександР- | Web-сайт:sham.clan.su
Вот сколько я не программирую на VB, никак не могу понять устройство контрола line. Как можно создать подобный? Вся его форма - это линия от и до.
Может с помощью winAPI? Помогите пожалуйста, у кого есть мысли на этот счёт...
Заранее благодарен!
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
Private Declare Sub LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long)
Private Sub Form_Paint()
Dim p As POINTAPI
With p
.X = 10
.Y = 10
End With
If MoveToEx(Me.hdc, 10, 10, p) Then LineTo Me.hdc, 200, 200
End Sub
Серега, спасибо, это весьма ценное замечание.
Но как быть с "формой" usercontrol'a? Чтобы она не моячилась тут да там? А приобрела форму этой вычерчиваемой линии?
Наверное глупость сказал - точнне, как сделать чтобы эта форма вообще изчезла, а всё, что на ней видимо осталось и с этим можно было бы работать? Типа того - наверно это легче...
А можешь привести такую функцию или ключевое слово для поиска, а то где-то я видел пример - запустили форму - а она в в виде строчного текста. Я афигел! Но вот только сейчас не могу найти ничего подобного. Подкинь, пожалуйста, большая просьба
Да оно и без него всё ещё лучше работает( когда Windowless = false).Главное backstyle = 0. Другое дело, что контролл надо растягивать на всю форму( пиктчер), чтобы линия везде рисовалась. Можно ли сделать её вообще без окна?
С каких это пор Line стал оконным контролом? Жжоте, уважаемый.
Я и ничего не говорю про Line, а имею в веду PictureBox'ы, CommandButton'ы и т. д.
p.s. В VB все кроме Line выделяется 8-ю квадратами по бокам. Возможно ли сделать контрол (к примеру, многоугольник), который выделялся бы, например, 10-ю квадратами и эти квадраты можно было такскать как угодно? Возможно ли это, или Line единственная в своем роде?
p.s. В VB все кроме Line выделяется 8-ю квадратами по бокам. Возможно ли сделать контрол (к примеру, многоугольник), который выделялся бы, например, 10-ю квадратами и эти квадраты можно было такскать как угодно? Возможно ли это, или Line единственная в своем роде?
Блин, я рано обрадовался. Это будет не так-то просто потому что там нельзя просто объявить событие mousemove - его придётся описывать, а это целая история! Я когда-то пытался. Ну в принципе - это возможно. По старой памяти напишу. Но с ActiveX проще получается: там уже всё готово, только свойства порасставить и форму убрать куда-то... Или я не знаю, как это делается, но VBD правильно написал...
Возможно ли сделать контрол (к примеру, многоугольник), который выделялся бы, например, 10-ю квадратами и эти квадраты можно было такскать как угодно?
Кроме того класс это не контролл, а научиться писать такие контролы интересно.