Тема: AHK: ToolTip при наведении на контрол
Всем привет, есть вопрос.У меня не получается сделать так чтобы при наведении курсора на контрол Text выдавало ToolTip сообщение.Помогите сделать рабочий код.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Всем привет, есть вопрос.У меня не получается сделать так чтобы при наведении курсора на контрол Text выдавало ToolTip сообщение.Помогите сделать рабочий код.
В такой последовательности:
loop
{
MouseGetPos
controlgettext
tooltip
}
Как использовать каждую из функций смотрите в справке.
Немного не так я хотел, мне нужно чтобы наведя на определенный контрол мышкой, ToolTip показал бы какое нибудь сообщение например "Hello World"
Тогда нужно знать: название окна и название контрола (Static1 или Button6 и т.д. определить можно с помощью AU3_Spy).
loop
{
mousegetpos
wingettitle
if (wintitle="Название окна") ; если определенное mousegetpos-ом окно соответствует заданному
if ctrl=Button4 ; тоже самое с контролом
tooltip,Какой-то текст
}
Alectric
Бесконечный цикл - это зло.
Alectric
Бесконечный цикл - это зло.
Взял скрипт из той темы, только почему он не работает на контрол "Text"?
Off:
Alectric
Бесконечный цикл - это зло.
Значит я на темной стороне, выходит. И несу в форум зло.
Взял скрипт из той темы, только почему он не работает на контрол "Text"?
Каюсь, на Text не проверял. Необходимо добавить стиль SS_NOTIFY, или метку перехода:
OnMessage(0x200, "WM_MOUSEMOVE")
global Help_Text1 := "Подсказка для Text1"
, Help_Text2 := "Подсказка для Text2"
; SS_NOTIFY := 0x100
Gui, Add, Text, vText1 +0x100, Text1
Gui, Add, Text, vText2 +0x100 y+50, Text2
Gui, Show
return
WM_MOUSEMOVE() {
Static PrControl
If (A_GuiControl <> PrControl) {
PrControl := A_GuiControl
ToolTip, % Help_%PrControl%
}
}
Значит я на темной стороне, выходит. И несу в форум зло.
Ну зачем же так буквально.
Просто такой цикл ощутимо нагрузит пк.
Не согласен, что данный бесконечный цикл ощутимо нагрузит пк.
Поставить в конце sleep, 100 - и все будет ОК.
Или вы работаете на 486?
Можно ещё и
SetBatchLines -1
добавить, у меня на I-3 временами 1% процесс ест. Если решать подобные задачи очевидным путём с бесконечным циклом проверок, 5 таких скриптов точно нагрузят, а их со временем с таким подходом точно накопится. И ещё, если цикл прервать другим потоком, то до его завершения ToolTip вы не увидите.
Взял скрипт из той темы, только почему он не работает на контрол "Text"?
Каюсь, на Text не проверял. Необходимо добавить стиль SS_NOTIFY, или метку перехода:
OnMessage(0x200, "WM_MOUSEMOVE") global Help_Text1 := "Подсказка для Text1" , Help_Text2 := "Подсказка для Text2" ; SS_NOTIFY := 0x100 Gui, Add, Text, vText1 +0x100, Text1 Gui, Add, Text, vText2 +0x100 y+50, Text2 Gui, Show return WM_MOUSEMOVE() { Static PrControl If (A_GuiControl <> PrControl) { PrControl := A_GuiControl ToolTip, % Help_%PrControl% } }
А как его отредактировать чтобы он работал только на контрол Text, а на Button не реагировал?
А где тут Button?
Ладно не забивайте голову лишней морокой, сам сделал.
OnMessage(0x200, "WM_MOUSEMOVE")
global Help_Text1 := "Подсказка для Text1"
, Help_Text2 := "Подсказка для Text2"
; SS_NOTIFY := 0x100
Gui, Add, Text, vText1 +0x100, Text1
Gui, Add, Text, vText2 +0x100 y+50, Text2
Gui, Show
return
WM_MOUSEMOVE() {
Static PrControl
If (A_GuiControl <> PrControl) {
PrControl := A_GuiControl
ToolTip, % Help_%PrControl%
}
}
А реально ли реализовать ToolTip для неактивных (disabled) контролов?
OnMessage(0x200, "WM_MOUSEMOVE")
Gui, Add, Text, vText1 +HwndText1, Первый текст
Gui, Add, Text, vText2 +HwndText2 disabled, Второй текст
Gui, Add, Text, vText3 +HwndText3, Третий текст
Gui, Add, Text, vText4 +HwndText4 disabled, Четвёртый текст
Help_Text := {(Text1): "Подсказка для Text1", (Text2): "Подсказка для Text2"}
Help_Text[Text3] := "Подсказка для Text3"
Help_Text[Text4] := "Подсказка для Text4"
Gui, Show, h100 w100
WM_MOUSEMOVE()
{
global Help_Text
MouseGetPos, , , , OutputVarControl, 2 ; 1|2|3
ToolTip % Help_Text[OutputVarControl]
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться