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

Ответить
Аватара пользователя
crashtuak

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

Сообщение crashtuak »

Ну хотел реализовать событие про наведении курсора на объект, и событие при снятии курсора с объекта. Вот код:



Код:

Код: Выделить всё

#include 
#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

Получился такой себе мониторчик Изображение, который показывает, курсор над нашим объектом, или нет Изображение. Кто знает как сделать, чтоб события обрабатывались именно тогда, когда нужно?
Аватара пользователя
crashtuak

Re: [решено] Событие при наведении курсора на обьект, и наоборот

Сообщение crashtuak »

Плин, сам сделал, не думал что у меня хватит мозгов Изображение:



Код:

Код: Выделить всё

#include 
#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

Работает вполне корректно, для моих целей (превращение пикчербокса в пнг кнопку Изображение) подойдет идеально.
Аватара пользователя
crashtuak

Re: [решено] Событие при наведении курсора на обьект, и наоборот

Сообщение crashtuak »

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

Re: [решено] Событие при наведении курсора на обьект, и наоборот

Сообщение crashtuak »

amel27, конешно спасибо, но я вот уже доделал свое. Там для нескончаемого (в разумных пределах Изображение) количества контролов.
Вложения
MouseEvents.rar
(744 байт) 0 скачиваний
MouseEvents.rar
(744 байт) 0 скачиваний
Аватара пользователя
crashtuak

Re: [решено] Событие при наведении курсора на обьект, и наоборот

Сообщение crashtuak »

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

Вернуться в «AutoIt»