Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Событие при наведении курсора на обьект, и наоборот

Ответить
Настройки темы
[решено] Событие при наведении курсора на обьект, и наоборот

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Ну хотел реализовать событие про наведении курсора на объект, и событие при снятии курсора с объекта. Вот код:
Код: Выделить весь код
#include <GUIConstants.au3>


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 443, 193, 125)
$Label1 = GUICtrlCreateLabel("Label1", 64, 48, 36, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $doo
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
	$mousee = MouseEvent_OnEnter_OnLeave($Label1)
	Switch $mousee
		Case 1
			MsgBox(0,"Title","Mouse entered")
		Case 0
			MsgBox(0,"Title","Mouse leaved")
	EndSwitch

WEnd



Func MouseEvent_OnEnter_OnLeave($hwnd)
Local $array
Local $retvaluee
$array = GUIGetCursorInfo()
If $array[4] = $hwnd Then
	$doo = 1		
EndIf
If $doo = 1 Then
	If $array[4] = $hwnd Then
		$doo = 0
		$retvaluee = 1
	EndIf
EndIf
If $doo = 1 Then
	If $array[4] <> $hwnd Then
		$doo = 0
		$retvaluee = 0
	EndIf
EndIf
return $retvaluee
EndFunc
Получился такой себе мониторчик , который показывает, курсор над нашим объектом, или нет . Кто знает как сделать, чтоб события обрабатывались именно тогда, когда нужно?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 17:40, 09-08-2009

 

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Плин, сам сделал, не думал что у меня хватит мозгов :
Код: Выделить весь код
#include <GUIConstants.au3>


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 443, 193, 125)
$Label1 = GUICtrlCreateLabel("Label1", 64, 48, 36, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $oncontrol
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
	$mousee = MouseEvent_OnEnter_OnLeave($Label1)
	Switch $mousee
		Case 1
			MsgBox(0,"Title","Mouse entered")
		Case 0
			MsgBox(0,"Title","Mouse leaved")
	EndSwitch

WEnd



Func MouseEvent_OnEnter_OnLeave($hwnd)
Local $array
Local $retvaluee
$array = GUIGetCursorInfo()
If $array[4] = $hwnd and $oncontrol = 0 Then
	$oncontrol = 1
	$retvaluee = 1
ElseIf $array[4] <> $hwnd and $oncontrol = 1 Then
	$retvaluee = 0
	$oncontrol = 0
Else
	$retvaluee = 3
EndIf
return $retvaluee
EndFunc
Работает вполне корректно, для моих целей (превращение пикчербокса в пнг кнопку ) подойдет идеально.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 18:02, 09-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Nik_rus

Пользователь


Сообщения: 92
Благодарности: 8

Профиль | Отправить PM | Цитировать


А решенной задачу Пушкин будет делать ?

-------
Бу! Мерзкий любитель кенгуру!


Отправлено: 19:22, 09-08-2009 | #3


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


В принципе, еще не до конца решено, надо еще сделать массив переменных $oncontrol для множества контролов, потомучто в примере работаю только с одним лейблом, а хочится иметь универсальную функцию .

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 21:25, 09-08-2009 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата crashtuak:
универсальную функцию »
смотри CreatOR's GUICtrlSetOnHover_UDF с примером

Отправлено: 03:30, 10-08-2009 | #5


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar MouseEvents.rar
(744 байт, 21 просмотров)

amel27, конешно спасибо, но я вот уже доделал свое. Там для нескончаемого (в разумных пределах ) количества контролов.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 07:34, 10-08-2009 | #6


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


amel27, Я в шоке, моя бедненькая функция по сравнению с CreatOR's GUICtrlSetOnHover_UDF выглядит как 2+2

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 07:47, 10-08-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Событие при наведении курсора на обьект, и наоборот

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Не отображаются подсказки Windows при наведении курсора на ЛЮБОЙ! файл. zdarg Microsoft Windows 2000/XP 11 27-12-2008 22:30
Разное - [решено] Превью txt файлов при наведении на него курсора (win XP) 4pok Оформление Windows XP 3 03-12-2008 22:57
Разное - hint при при наведении указателя на имя файла в Проводнике - как ОС ищет инф? bvn123 Microsoft Windows 2000/XP 1 01-02-2008 01:10
Интерфейс - [решено] при смещении курсора окно перестает быть активным marikva Microsoft Windows 2000/XP 5 24-01-2008 14:57
Изменение курсора при наведении dascon Вебмастеру 3 12-03-2007 19:51




 
Переход