Помощь с мышаком и имеджбоксом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
net
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 08.07.2003 (Вт) 10:31
Откуда: Ялта/Ukraine

Помощь с мышаком и имеджбоксом

Сообщение net » 03.04.2004 (Сб) 23:33

Скажите пожалуйста,как вычислять положение мышки на форме?И как можно связать это положение со,скажем,положением имеджбокса на форме?Я пока пробовал определять положение с помощью form1.currentX и Form1.curentY,но стоило мне сбросить эти значения в мсг,то оно выдало,что и кьюррент Х и У = 0,может я чё не так намутил :oops:
Ещё такой есть глюк :
я хотел,чтобы таймер через определённый период менял в имеджбоксе картинку,которая валялась в определённой папке,однако эта гадина говорила,что такой картини там и впомине нет :evil: !Забил на таймер,пробовал просто при нажатии кнопки картинка менялась!
что-то типа того :
image1.picture = "c:\1.bmp"
пробовал тоже самое с пикчером,всё равно не прокатило :?
Говорит,мол картинки-то нету!помогите,кто чем может ,заранее спасибо!
Семь бед - топи reset!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 03.04.2004 (Сб) 23:36

Значит, так.

Form.CurrentX и Form.CurrentY - позиция, откуда печатается текст методом Print.

Чтобы получить координаты мышки, нужно отлавливать Form_MouseMove, там есть и X и Y.

Для смены картинки - Image1.Picture = LoadPicture("C:\1.bmp"). То же самое и с PictureBox.
Нет меня больше

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.04.2004 (Вс) 14:56

Для справки: чтобы определить позицию мыши на экране исп. API-функция GetCursorPos.

Juriev
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 25.11.2003 (Вт) 21:13

Сообщение Juriev » 05.04.2004 (Пн) 9:58

CurrentX, CurrentY запоминают последнюю точку рисования или Print.
Примеры:
после Pset (100, 200) - в CurrentX будет 100, в CurrentY - 200
после Line(50, 50)- (140,290) в CurrentX будет 140, в CurrentY - 290
после Print "Любая строка"; в CurrentX будет конец строчки, а в CurrentY расстояние от вверха формы до этой строки.
Можно присвоить самому:
CurrentX = (допустим) 456
CurrentY = (допустим) 958
и теперь Line(CurrentX, CurrentY ) -(2000, 2000) нарисует линию из точки (456, 958) в точку (2000, 2000).
Cls - очищает и присваивает CurrentX =0 CurrentY=0.
Все это относится только к форме или PictureBox.

Juriev
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 25.11.2003 (Вт) 21:13

Сообщение Juriev » 05.04.2004 (Пн) 10:39

Попробуй этот код и, я думаю все будет понятно.
На новую форму поставить Picture1, Command1, Command2, Label1

Private Sub Command1_Click()
Print "строка", 'точку с запятой попробуй убрать или заменить на запятую
Label1.Caption = Form1.CurrentX & "-" & Form1.CurrentY & " - - " & Picture1.CurrentX & "-" & Picture1.CurrentY
End Sub

Private Sub Command2_Click()
Form1.Cls
Picture1.Cls
Label1.Caption = Form1.CurrentX & "-" & Form1.CurrentY & " - - " & Picture1.CurrentX & "-" & Picture1.CurrentY
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.Line -(X, Y)
Label1.Caption = Form1.CurrentX & "-" & Form1.CurrentY & " - - " & Picture1.CurrentX & "-" & Picture1.CurrentY
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Line -(X, Y)
Label1.Caption = Form1.CurrentX & "-" & Form1.CurrentY & " - - " & Picture1.CurrentX & "-" & Picture1.CurrentY
End Sub

CLaeR
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 11.04.2004 (Вс) 21:40
Откуда: Мончегорск

Сообщение CLaeR » 11.04.2004 (Вс) 22:06

'Че вы пацана парите он просто спросил как сделать то то:
dim i as byte' думаю 255 картинок тебе хватит

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
form1.caption="ПозицияX:" & X & "ПозицияY:" & Y
End Sub

'Далее timer
'Здесь подразумевается что у тебя картинки в папке images диск C:\
Private Sub Timer1_Timer()
i=i+1
picture1.picture=loadpicture("C:\images\" & i & ".bmp"
End Sub
'Усе
VB is a good solution

net
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 08.07.2003 (Вт) 10:31
Откуда: Ялта/Ukraine

Сообщение net » 12.04.2004 (Пн) 21:36

Всем большое спасибо!Тему мона закрыть
Семь бед - топи reset!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 21

    TopList  
cron