-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Событие при наведении курсора на обьект, и наоборот
Ну хотел реализовать событие про наведении курсора на объект, и событие при снятии курсора с объекта. Вот код:
Код:
#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
Получился такой себе мониторчик :), который показывает, курсор над нашим объектом, или нет :). Кто знает как сделать, чтоб события обрабатывались именно тогда, когда нужно?
|
Плин, сам сделал, не думал что у меня хватит мозгов :):
Код:
#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
Работает вполне корректно, для моих целей (превращение пикчербокса в пнг кнопку :)) подойдет идеально.
|
А решенной задачу Пушкин будет делать ?
|
В принципе, еще не до конца решено, надо еще сделать массив переменных $oncontrol для множества контролов, потомучто в примере работаю только с одним лейблом, а хочится иметь универсальную функцию :).
|
Вложений: 1
amel27, конешно спасибо, но я вот уже доделал свое. Там для нескончаемого (в разумных пределах :)) количества контролов.
|
amel27, Я в шоке, моя бедненькая функция по сравнению с CreatOR's GUICtrlSetOnHover_UDF выглядит как 2+2:)
|
Время: 13:28.
© OSzone.net 2001-