|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Событие при наведении курсора на обьект, и наоборот |
|
|
[решено] Событие при наведении курсора на обьект, и наоборот
|
|
Старожил Сообщения: 467 |
Ну хотел реализовать событие про наведении курсора на объект, и событие при снятии курсора с объекта. Вот код:
#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 |
|
Старожил Сообщения: 467
|
Профиль | Отправить 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 |
|
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать А решенной задачу Пушкин будет делать ?
|
|
------- Отправлено: 19:22, 09-08-2009 | #3 |
|
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать В принципе, еще не до конца решено, надо еще сделать массив переменных $oncontrol для множества контролов, потомучто в примере работаю только с одним лейблом, а хочится иметь универсальную функцию
. |
|
------- Отправлено: 21:25, 09-08-2009 | #4 |
|
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
|
|
Отправлено: 03:30, 10-08-2009 | #5 |
|
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать amel27, конешно спасибо, но я вот уже доделал свое. Там для нескончаемого (в разумных пределах
) количества контролов. |
|
------- Отправлено: 07:34, 10-08-2009 | #6 |
|
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать amel27, Я в шоке, моя бедненькая функция по сравнению с CreatOR's GUICtrlSetOnHover_UDF выглядит как 2+2
![]() |
|
------- Отправлено: 07:47, 10-08-2009 | #7 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Интерфейс - [решено] Не отображаются подсказки 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 | |
|