Как определить координаты курсора в окне формы

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

Как определить координаты курсора в окне формы

Сообщение green_tree » 18.12.2007 (Вт) 20:13

1) Подскажите: какой функцией или чем-то другим можно определить координаты курсора в окне формы в любое время. Определять координаты желательно в цикле, через равные промежутки времени (0.05...0.1 сек). Координаты надо записывать в ячейки листа Excel (этот момент я знаю).
События типа MouseMove не подходят.

2) И второй момент: каким способом можно поместить курсор мыши в центр окна формы (кроме как ручного - на глаз)

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 20:37

Тебе понадобятся функции SetCursorPos, GetCursorPos и ClientToScreen. Вот и всё :)
Salus populi suprema lex

green_tree
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2007 (Вт) 19:56

Сообщение green_tree » 18.12.2007 (Вт) 21:51

А каким образом задать паузу (0.05...0.1 сек)?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 21:57

Например, таймер из стандартных элементов управления.
Salus populi suprema lex

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 18.12.2007 (Вт) 22:42

Sleep юзай
Подпись проходит рефакторинг

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 18.12.2007 (Вт) 22:51

Так а зачем ему Sleep? Ему же надо с определенной периодичностью выполнять определенные действия...
Salus populi suprema lex

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 18.12.2007 (Вт) 23:57

Ну это как вариант. Тоже задержку реализует
Подпись проходит рефакторинг

green_tree
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2007 (Вт) 19:56

Сообщение green_tree » 19.12.2007 (Ср) 0:14

А как конретно записать (синтаксис) этот sleep в цикл? Например для паузы в 0.1 сек

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 19.12.2007 (Ср) 0:26

Sleep 100, предварительно объявив эту функцию. А всё-таки, какие возражения против таймера?
Salus populi suprema lex

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 19.12.2007 (Ср) 0:42

Лично у меня никаких. Я просто предложил альтернативу таймеру.
Вариант со sleep'ом на пару строк короче, хотя при использовании таймера программа не подвисает (в смысле продолжает обрабатывать сообщения, посылаемые системой), хотя при задержке в 0,1 сек это некритично. У всех вариантов есть свои плюсы и минусы, выбор за топикстартером.
На всякий случай вот объявление для Sleep:
Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Подпись проходит рефакторинг

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 20.12.2007 (Чт) 1:55

По-моему, Sleep тут вообще не к месту.
Вариант со sleep'ом на пару строк короче

Интересно, каким это образом?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Re: Как определить координаты курсора в окне формы

Сообщение Lumen » 20.12.2007 (Чт) 8:33

green_tree писал(а):1) Определять координаты желательно в цикле, через равные промежутки времени (0.05...0.1 сек).

В чем я не прав?
Подпись проходит рефакторинг

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 20.12.2007 (Чт) 10:25

green_tree
Ты, случаем, не делаешь программу, которая с помощью мышки (в качестве датчика) измеряет перемещение какого-то материала?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

green_tree
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2007 (Вт) 19:56

Сообщение green_tree » 20.12.2007 (Чт) 23:15

Да, так оно и есть. Я хочу использовать мышку в качестве датчика движения. Координаты передаю в Excel и смотрю траекторию движения (строю точечную диаграмму) уже после движения. Хочу потом научиться как в VB строить траекторию в реальном времени.

Кстати, подскажите: где можно скачать литературу по построению графиков в VB

green_tree
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2007 (Вт) 19:56

Сообщение green_tree » 20.12.2007 (Чт) 23:23

И еще кое-что: каким образом можно точно фиксировать время каждой получаемой координаты мыши от момента пуска.
Если возможно, то напишите, пожайлуста, синтаксис и как объявлять эти функции и операторы.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.12.2007 (Пт) 9:15

Я к тому, что у меня уже имеется готовая программа, которая делает то, что я предположил.

Как на основе мышки можно сделать датчик движения - ума не приложу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

green_tree
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.12.2007 (Вт) 19:56

Сообщение green_tree » 21.12.2007 (Пт) 19:30

А поделиться можешь?


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

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

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

    TopList