1

Тема: AHK: ToolTip при наведении на контрол

Всем привет, есть вопрос.У меня не получается сделать так чтобы при наведении курсора на контрол Text выдавало ToolTip сообщение.Помогите сделать рабочий код.

Windows 10 x64

2

Re: AHK: ToolTip при наведении на контрол

В такой последовательности:


loop
{
  MouseGetPos
  controlgettext
  tooltip
}

Как использовать каждую из функций смотрите в справке.

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

3

Re: AHK: ToolTip при наведении на контрол

Немного не так я хотел, мне нужно чтобы наведя на определенный контрол мышкой, ToolTip показал бы какое нибудь сообщение например "Hello World"

Windows 10 x64

4 (изменено: Alectric, 2013-11-15 16:28:31)

Re: AHK: ToolTip при наведении на контрол

Тогда нужно знать: название окна и название контрола (Static1 или Button6 и т.д. определить можно с помощью AU3_Spy).

loop
{
  mousegetpos
  wingettitle
  if (wintitle="Название окна")  ; если определенное mousegetpos-ом окно соответствует заданному
    if ctrl=Button4 ; тоже самое с контролом
      tooltip,Какой-то текст
}

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

5 (изменено: serzh82saratov, 2013-11-15 19:45:05)

Re: AHK: ToolTip при наведении на контрол

Была такая тема

Alectric
Бесконечный цикл - это зло.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

6

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

Была такая тема

Alectric
Бесконечный цикл - это зло.

Взял скрипт из той темы, только почему он не работает на контрол "Text"?

Windows 10 x64

7 (изменено: Alectric, 2013-11-16 10:07:49)

Re: AHK: ToolTip при наведении на контрол

Off:

+ открыть спойлер
serzh82saratov пишет:

Alectric
Бесконечный цикл - это зло.

Значит я на темной стороне, выходит. И несу в форум зло.

Win 7 x64
AHK v1.1.24.00
                       Справка тебе в помощь.

8 (изменено: serzh82saratov, 2013-11-16 23:41:39)

Re: AHK: 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% 
    }      
} 
Alectric пишет:

Значит я на темной стороне, выходит. И несу в форум зло.

Ну зачем же так буквально.
Просто такой цикл ощутимо нагрузит пк.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

9

Re: AHK: ToolTip при наведении на контрол

Не согласен, что данный бесконечный цикл ощутимо нагрузит пк.
Поставить в конце sleep, 100 - и все будет ОК.
Или вы работаете на 486?

10

Re: AHK: ToolTip при наведении на контрол

Можно ещё и

SetBatchLines -1

добавить, у меня на I-3 временами 1% процесс ест. Если решать подобные задачи очевидным путём с бесконечным циклом проверок, 5 таких скриптов точно нагрузят, а их со временем с таким подходом точно накопится. И ещё, если цикл прервать другим потоком, то до его завершения ToolTip вы не увидите.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

11

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

Взял скрипт из той темы, только почему он не работает на контрол "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 не реагировал?

Windows 10 x64

12

Re: AHK: ToolTip при наведении на контрол

А где тут Button?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

13

Re: AHK: ToolTip при наведении на контрол

Ладно не забивайте голову лишней морокой, сам сделал.

Windows 10 x64

14

Re: AHK: ToolTip при наведении на контрол

serzh82saratov пишет:

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) контролов?

15

Re: AHK: ToolTip при наведении на контрол

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]
}